﻿2026-06-18T11:17:59.8440056Z ##[group]Run ./traceable-reqs check --json
2026-06-18T11:17:59.8440394Z [36;1m./traceable-reqs check --json[0m
2026-06-18T11:17:59.8453088Z shell: /usr/bin/bash -e {0}
2026-06-18T11:17:59.8453312Z ##[endgroup]
2026-06-18T11:17:59.9489109Z {
2026-06-18T11:17:59.9489754Z   "schemaVersion": 1,
2026-06-18T11:17:59.9490191Z   "summary": {
2026-06-18T11:17:59.9490632Z     "requirementCount": 249,
2026-06-18T11:17:59.9491257Z     "completeCount": 249,
2026-06-18T11:17:59.9491662Z     "incompleteCount": 0,
2026-06-18T11:17:59.9492045Z     "findingCount": 0
2026-06-18T11:17:59.9492402Z   },
2026-06-18T11:17:59.9492726Z   "requirements": [
2026-06-18T11:17:59.9493078Z     {
2026-06-18T11:17:59.9493859Z       "id": "REQ-API-1",
2026-06-18T11:17:59.9494370Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-18T11:17:59.9494880Z       "requiredStages": [
2026-06-18T11:17:59.9495188Z         "impl",
2026-06-18T11:17:59.9495453Z         "unit",
2026-06-18T11:17:59.9495698Z         "int"
2026-06-18T11:17:59.9496017Z       ],
2026-06-18T11:17:59.9496274Z       "stages": {
2026-06-18T11:17:59.9496546Z         "doc": {
2026-06-18T11:17:59.9496827Z           "complete": false,
2026-06-18T11:17:59.9497147Z           "evidence": []
2026-06-18T11:17:59.9497432Z         },
2026-06-18T11:17:59.9497685Z         "impl": {
2026-06-18T11:17:59.9497979Z           "complete": true,
2026-06-18T11:17:59.9498292Z           "evidence": [
2026-06-18T11:17:59.9498593Z             {
2026-06-18T11:17:59.9498889Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T11:17:59.9499355Z               "line": 15
2026-06-18T11:17:59.9499656Z             }
2026-06-18T11:17:59.9499927Z           ]
2026-06-18T11:17:59.9500175Z         },
2026-06-18T11:17:59.9500438Z         "int": {
2026-06-18T11:17:59.9500718Z           "complete": true,
2026-06-18T11:17:59.9501031Z           "evidence": [
2026-06-18T11:17:59.9501326Z             {
2026-06-18T11:17:59.9501646Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-18T11:17:59.9502046Z               "line": 13
2026-06-18T11:17:59.9502347Z             }
2026-06-18T11:17:59.9502629Z           ]
2026-06-18T11:17:59.9502891Z         },
2026-06-18T11:17:59.9503148Z         "unit": {
2026-06-18T11:17:59.9503423Z           "complete": true,
2026-06-18T11:17:59.9503728Z           "evidence": [
2026-06-18T11:17:59.9504010Z             {
2026-06-18T11:17:59.9504306Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T11:17:59.9504677Z               "line": 717
2026-06-18T11:17:59.9504977Z             },
2026-06-18T11:17:59.9505235Z             {
2026-06-18T11:17:59.9505532Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T11:17:59.9505915Z               "line": 804
2026-06-18T11:17:59.9506209Z             }
2026-06-18T11:17:59.9506462Z           ]
2026-06-18T11:17:59.9506704Z         }
2026-06-18T11:17:59.9506958Z       }
2026-06-18T11:17:59.9507201Z     },
2026-06-18T11:17:59.9507454Z     {
2026-06-18T11:17:59.9507722Z       "id": "REQ-API-2",
2026-06-18T11:17:59.9508216Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-18T11:17:59.9508759Z       "requiredStages": [
2026-06-18T11:17:59.9509134Z         "impl",
2026-06-18T11:17:59.9509401Z         "unit",
2026-06-18T11:17:59.9509668Z         "int"
2026-06-18T11:17:59.9509915Z       ],
2026-06-18T11:17:59.9510163Z       "stages": {
2026-06-18T11:17:59.9510444Z         "doc": {
2026-06-18T11:17:59.9510749Z           "complete": false,
2026-06-18T11:17:59.9511140Z           "evidence": []
2026-06-18T11:17:59.9511433Z         },
2026-06-18T11:17:59.9511687Z         "impl": {
2026-06-18T11:17:59.9511968Z           "complete": true,
2026-06-18T11:17:59.9512282Z           "evidence": [
2026-06-18T11:17:59.9512564Z             {
2026-06-18T11:17:59.9512884Z               "path": "crates/spt-store/src/history.rs",
2026-06-18T11:17:59.9513273Z               "line": 17
2026-06-18T11:17:59.9513574Z             },
2026-06-18T11:17:59.9513833Z             {
2026-06-18T11:17:59.9514378Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T11:17:59.9514799Z               "line": 20
2026-06-18T11:17:59.9515080Z             },
2026-06-18T11:17:59.9515341Z             {
2026-06-18T11:17:59.9515656Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T11:17:59.9516059Z               "line": 142
2026-06-18T11:17:59.9516361Z             },
2026-06-18T11:17:59.9516616Z             {
2026-06-18T11:17:59.9516907Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:17:59.9517298Z               "line": 24
2026-06-18T11:17:59.9517579Z             },
2026-06-18T11:17:59.9517847Z             {
2026-06-18T11:17:59.9518329Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:17:59.9518733Z               "line": 41
2026-06-18T11:17:59.9519114Z             },
2026-06-18T11:17:59.9519370Z             {
2026-06-18T11:17:59.9519680Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:17:59.9520065Z               "line": 209
2026-06-18T11:17:59.9520362Z             },
2026-06-18T11:17:59.9520610Z             {
2026-06-18T11:17:59.9520920Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:17:59.9521290Z               "line": 251
2026-06-18T11:17:59.9521582Z             },
2026-06-18T11:17:59.9521838Z             {
2026-06-18T11:17:59.9522141Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:17:59.9522528Z               "line": 330
2026-06-18T11:17:59.9522819Z             },
2026-06-18T11:17:59.9523076Z             {
2026-06-18T11:17:59.9523405Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:17:59.9523819Z               "line": 393
2026-06-18T11:17:59.9524200Z             },
2026-06-18T11:17:59.9524472Z             {
2026-06-18T11:17:59.9524778Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:17:59.9525163Z               "line": 432
2026-06-18T11:17:59.9525450Z             },
2026-06-18T11:17:59.9525707Z             {
2026-06-18T11:17:59.9526022Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T11:17:59.9526407Z               "line": 17
2026-06-18T11:17:59.9526704Z             },
2026-06-18T11:17:59.9526964Z             {
2026-06-18T11:17:59.9527263Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T11:17:59.9527654Z               "line": 30
2026-06-18T11:17:59.9527868Z             },
2026-06-18T11:17:59.9528035Z             {
2026-06-18T11:17:59.9528302Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T11:17:59.9528569Z               "line": 63
2026-06-18T11:17:59.9528788Z             },
2026-06-18T11:17:59.9529017Z             {
2026-06-18T11:17:59.9529284Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T11:17:59.9529538Z               "line": 77
2026-06-18T11:17:59.9529788Z             }
2026-06-18T11:17:59.9529963Z           ]
2026-06-18T11:17:59.9530135Z         },
2026-06-18T11:17:59.9530297Z         "int": {
2026-06-18T11:17:59.9530507Z           "complete": true,
2026-06-18T11:17:59.9530745Z           "evidence": [
2026-06-18T11:17:59.9530940Z             {
2026-06-18T11:17:59.9531151Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-18T11:17:59.9531427Z               "line": 14
2026-06-18T11:17:59.9531626Z             },
2026-06-18T11:17:59.9531814Z             {
2026-06-18T11:17:59.9532024Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-18T11:17:59.9532284Z               "line": 187
2026-06-18T11:17:59.9532483Z             }
2026-06-18T11:17:59.9532668Z           ]
2026-06-18T11:17:59.9532840Z         },
2026-06-18T11:17:59.9533006Z         "unit": {
2026-06-18T11:17:59.9533196Z           "complete": true,
2026-06-18T11:17:59.9533416Z           "evidence": [
2026-06-18T11:17:59.9533612Z             {
2026-06-18T11:17:59.9533817Z               "path": "crates/spt-store/src/history.rs",
2026-06-18T11:17:59.9534083Z               "line": 82
2026-06-18T11:17:59.9534271Z             },
2026-06-18T11:17:59.9534441Z             {
2026-06-18T11:17:59.9534823Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T11:17:59.9535079Z               "line": 279
2026-06-18T11:17:59.9535275Z             },
2026-06-18T11:17:59.9535451Z             {
2026-06-18T11:17:59.9535652Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:17:59.9535901Z               "line": 705
2026-06-18T11:17:59.9536099Z             },
2026-06-18T11:17:59.9536272Z             {
2026-06-18T11:17:59.9536471Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:17:59.9536724Z               "line": 716
2026-06-18T11:17:59.9536925Z             },
2026-06-18T11:17:59.9537096Z             {
2026-06-18T11:17:59.9537410Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:17:59.9537665Z               "line": 869
2026-06-18T11:17:59.9537861Z             },
2026-06-18T11:17:59.9538037Z             {
2026-06-18T11:17:59.9538238Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:17:59.9538495Z               "line": 915
2026-06-18T11:17:59.9538694Z             },
2026-06-18T11:17:59.9538867Z             {
2026-06-18T11:17:59.9539186Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T11:17:59.9539440Z               "line": 143
2026-06-18T11:17:59.9539630Z             },
2026-06-18T11:17:59.9539802Z             {
2026-06-18T11:17:59.9539993Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T11:17:59.9540244Z               "line": 187
2026-06-18T11:17:59.9540434Z             }
2026-06-18T11:17:59.9540598Z           ]
2026-06-18T11:17:59.9540772Z         }
2026-06-18T11:17:59.9540932Z       }
2026-06-18T11:17:59.9541100Z     },
2026-06-18T11:17:59.9541276Z     {
2026-06-18T11:17:59.9541458Z       "id": "REQ-API-3",
2026-06-18T11:17:59.9541706Z       "title": "commune/signoff are file-drops, not commands",
2026-06-18T11:17:59.9541992Z       "requiredStages": [
2026-06-18T11:17:59.9542191Z         "impl",
2026-06-18T11:17:59.9542360Z         "unit",
2026-06-18T11:17:59.9542540Z         "int"
2026-06-18T11:17:59.9542717Z       ],
2026-06-18T11:17:59.9542891Z       "stages": {
2026-06-18T11:17:59.9543085Z         "doc": {
2026-06-18T11:17:59.9543271Z           "complete": false,
2026-06-18T11:17:59.9543494Z           "evidence": []
2026-06-18T11:17:59.9544025Z         },
2026-06-18T11:17:59.9544301Z         "impl": {
2026-06-18T11:17:59.9544635Z           "complete": true,
2026-06-18T11:17:59.9544940Z           "evidence": [
2026-06-18T11:17:59.9545311Z             {
2026-06-18T11:17:59.9545654Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-18T11:17:59.9546117Z               "line": 27
2026-06-18T11:17:59.9546608Z             },
2026-06-18T11:17:59.9546955Z             {
2026-06-18T11:17:59.9547438Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:17:59.9574274Z               "line": 562
2026-06-18T11:17:59.9574639Z             }
2026-06-18T11:17:59.9574903Z           ]
2026-06-18T11:17:59.9575104Z         },
2026-06-18T11:17:59.9575395Z         "int": {
2026-06-18T11:17:59.9575771Z           "complete": true,
2026-06-18T11:17:59.9576148Z           "evidence": [
2026-06-18T11:17:59.9576506Z             {
2026-06-18T11:17:59.9576878Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-18T11:17:59.9577358Z               "line": 261
2026-06-18T11:17:59.9577720Z             }
2026-06-18T11:17:59.9578025Z           ]
2026-06-18T11:17:59.9578321Z         },
2026-06-18T11:17:59.9578603Z         "unit": {
2026-06-18T11:17:59.9579037Z           "complete": true,
2026-06-18T11:17:59.9579410Z           "evidence": [
2026-06-18T11:17:59.9579750Z             {
2026-06-18T11:17:59.9580116Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-18T11:17:59.9580592Z               "line": 280
2026-06-18T11:17:59.9580930Z             },
2026-06-18T11:17:59.9581231Z             {
2026-06-18T11:17:59.9581603Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:17:59.9582052Z               "line": 944
2026-06-18T11:17:59.9582386Z             }
2026-06-18T11:17:59.9582949Z           ]
2026-06-18T11:17:59.9583255Z         }
2026-06-18T11:17:59.9583551Z       }
2026-06-18T11:17:59.9583855Z     },
2026-06-18T11:17:59.9584160Z     {
2026-06-18T11:17:59.9584447Z       "id": "REQ-API-4",
2026-06-18T11:17:59.9588352Z       "title": "api resolves the adapter manifest (+ profile + install dir) from `--adapter name:profile` via the registry when `--manifest` is omitted; `--manifest` becomes an optional OVERRIDE (unregistered / local-dev manifests). Removes the require-both-flags redundancy — a registered adapter's live bringup / digest / capability needs only `--adapter` — and yields the precise install dir (the record's source_dir) rather than the --manifest parent, closing the copy-mode psyche-binary edge (v0.8.0)",
2026-06-18T11:17:59.9591320Z       "requiredStages": [
2026-06-18T11:17:59.9591563Z         "doc",
2026-06-18T11:17:59.9591753Z         "impl",
2026-06-18T11:17:59.9591945Z         "unit"
2026-06-18T11:17:59.9592130Z       ],
2026-06-18T11:17:59.9592321Z       "stages": {
2026-06-18T11:17:59.9592513Z         "doc": {
2026-06-18T11:17:59.9592707Z           "complete": true,
2026-06-18T11:17:59.9592941Z           "evidence": [
2026-06-18T11:17:59.9593149Z             {
2026-06-18T11:17:59.9593347Z               "path": "CONTEXT.md",
2026-06-18T11:17:59.9593601Z               "line": 149
2026-06-18T11:17:59.9593810Z             }
2026-06-18T11:17:59.9594000Z           ]
2026-06-18T11:17:59.9594173Z         },
2026-06-18T11:17:59.9594334Z         "impl": {
2026-06-18T11:17:59.9594525Z           "complete": true,
2026-06-18T11:17:59.9594730Z           "evidence": [
2026-06-18T11:17:59.9594920Z             {
2026-06-18T11:17:59.9595117Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T11:17:59.9595365Z               "line": 484
2026-06-18T11:17:59.9595554Z             }
2026-06-18T11:17:59.9595720Z           ]
2026-06-18T11:17:59.9595890Z         },
2026-06-18T11:17:59.9596062Z         "int": {
2026-06-18T11:17:59.9596247Z           "complete": false,
2026-06-18T11:17:59.9596467Z           "evidence": []
2026-06-18T11:17:59.9596658Z         },
2026-06-18T11:17:59.9596821Z         "unit": {
2026-06-18T11:17:59.9596997Z           "complete": true,
2026-06-18T11:17:59.9597192Z           "evidence": [
2026-06-18T11:17:59.9597369Z             {
2026-06-18T11:17:59.9597554Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T11:17:59.9597797Z               "line": 657
2026-06-18T11:17:59.9597990Z             },
2026-06-18T11:17:59.9598160Z             {
2026-06-18T11:17:59.9598351Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T11:17:59.9598597Z               "line": 681
2026-06-18T11:17:59.9598788Z             },
2026-06-18T11:17:59.9599018Z             {
2026-06-18T11:17:59.9599208Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T11:17:59.9599446Z               "line": 705
2026-06-18T11:17:59.9599637Z             }
2026-06-18T11:17:59.9599808Z           ]
2026-06-18T11:17:59.9599967Z         }
2026-06-18T11:17:59.9600128Z       }
2026-06-18T11:17:59.9600296Z     },
2026-06-18T11:17:59.9600452Z     {
2026-06-18T11:17:59.9600620Z       "id": "REQ-ARCH-1",
2026-06-18T11:17:59.9600857Z       "title": "Many small acyclically-layered crates",
2026-06-18T11:17:59.9601107Z       "requiredStages": [
2026-06-18T11:17:59.9601312Z         "impl"
2026-06-18T11:17:59.9601479Z       ],
2026-06-18T11:17:59.9601651Z       "stages": {
2026-06-18T11:17:59.9601823Z         "doc": {
2026-06-18T11:17:59.9602008Z           "complete": false,
2026-06-18T11:17:59.9602219Z           "evidence": []
2026-06-18T11:17:59.9602404Z         },
2026-06-18T11:17:59.9602562Z         "impl": {
2026-06-18T11:17:59.9602768Z           "complete": true,
2026-06-18T11:17:59.9602967Z           "evidence": [
2026-06-18T11:17:59.9603154Z             {
2026-06-18T11:17:59.9603354Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-18T11:17:59.9603590Z               "line": 18
2026-06-18T11:17:59.9603776Z             },
2026-06-18T11:17:59.9604069Z             {
2026-06-18T11:17:59.9604269Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-18T11:17:59.9604509Z               "line": 12
2026-06-18T11:17:59.9604704Z             },
2026-06-18T11:17:59.9604875Z             {
2026-06-18T11:17:59.9605062Z               "path": "crates/spt-store/src/lib.rs",
2026-06-18T11:17:59.9605300Z               "line": 12
2026-06-18T11:17:59.9605485Z             }
2026-06-18T11:17:59.9605649Z           ]
2026-06-18T11:17:59.9605809Z         },
2026-06-18T11:17:59.9605968Z         "int": {
2026-06-18T11:17:59.9606152Z           "complete": false,
2026-06-18T11:17:59.9606367Z           "evidence": []
2026-06-18T11:17:59.9606665Z         },
2026-06-18T11:17:59.9606827Z         "unit": {
2026-06-18T11:17:59.9607013Z           "complete": false,
2026-06-18T11:17:59.9607233Z           "evidence": []
2026-06-18T11:17:59.9607418Z         }
2026-06-18T11:17:59.9607576Z       }
2026-06-18T11:17:59.9607752Z     },
2026-06-18T11:17:59.9607915Z     {
2026-06-18T11:17:59.9608085Z       "id": "REQ-ARCH-2",
2026-06-18T11:17:59.9608362Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-18T11:17:59.9608672Z       "requiredStages": [
2026-06-18T11:17:59.9608869Z         "impl"
2026-06-18T11:17:59.9609119Z       ],
2026-06-18T11:17:59.9609287Z       "stages": {
2026-06-18T11:17:59.9609463Z         "doc": {
2026-06-18T11:17:59.9609639Z           "complete": false,
2026-06-18T11:17:59.9609840Z           "evidence": []
2026-06-18T11:17:59.9610035Z         },
2026-06-18T11:17:59.9610202Z         "impl": {
2026-06-18T11:17:59.9610382Z           "complete": true,
2026-06-18T11:17:59.9610579Z           "evidence": [
2026-06-18T11:17:59.9610780Z             {
2026-06-18T11:17:59.9610974Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-18T11:17:59.9611222Z               "line": 18
2026-06-18T11:17:59.9611402Z             }
2026-06-18T11:17:59.9611577Z           ]
2026-06-18T11:17:59.9611744Z         },
2026-06-18T11:17:59.9611906Z         "int": {
2026-06-18T11:17:59.9612097Z           "complete": false,
2026-06-18T11:17:59.9612296Z           "evidence": []
2026-06-18T11:17:59.9612478Z         },
2026-06-18T11:17:59.9612650Z         "unit": {
2026-06-18T11:17:59.9612826Z           "complete": false,
2026-06-18T11:17:59.9613032Z           "evidence": []
2026-06-18T11:17:59.9613217Z         }
2026-06-18T11:17:59.9613375Z       }
2026-06-18T11:17:59.9613541Z     },
2026-06-18T11:17:59.9613699Z     {
2026-06-18T11:17:59.9613870Z       "id": "REQ-ARCH-3",
2026-06-18T11:17:59.9614164Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-18T11:17:59.9614519Z       "requiredStages": [
2026-06-18T11:17:59.9614721Z         "impl",
2026-06-18T11:17:59.9614896Z         "unit"
2026-06-18T11:17:59.9615078Z       ],
2026-06-18T11:17:59.9615241Z       "stages": {
2026-06-18T11:17:59.9615412Z         "doc": {
2026-06-18T11:17:59.9615593Z           "complete": false,
2026-06-18T11:17:59.9615788Z           "evidence": []
2026-06-18T11:17:59.9615989Z         },
2026-06-18T11:17:59.9616165Z         "impl": {
2026-06-18T11:17:59.9616346Z           "complete": true,
2026-06-18T11:17:59.9616552Z           "evidence": [
2026-06-18T11:17:59.9616736Z             {
2026-06-18T11:17:59.9616945Z               "path": "crates/spt-proto/src/version.rs",
2026-06-18T11:17:59.9617196Z               "line": 34
2026-06-18T11:17:59.9617377Z             },
2026-06-18T11:17:59.9617555Z             {
2026-06-18T11:17:59.9617763Z               "path": "crates/spt-proto/src/version.rs",
2026-06-18T11:17:59.9618002Z               "line": 41
2026-06-18T11:17:59.9618198Z             }
2026-06-18T11:17:59.9618364Z           ]
2026-06-18T11:17:59.9618537Z         },
2026-06-18T11:17:59.9618703Z         "int": {
2026-06-18T11:17:59.9618879Z           "complete": false,
2026-06-18T11:17:59.9619153Z           "evidence": []
2026-06-18T11:17:59.9619357Z         },
2026-06-18T11:17:59.9619509Z         "unit": {
2026-06-18T11:17:59.9619689Z           "complete": true,
2026-06-18T11:17:59.9633518Z           "evidence": [
2026-06-18T11:17:59.9633780Z             {
2026-06-18T11:17:59.9634036Z               "path": "crates/spt-proto/src/version.rs",
2026-06-18T11:17:59.9634327Z               "line": 51
2026-06-18T11:17:59.9634519Z             },
2026-06-18T11:17:59.9634724Z             {
2026-06-18T11:17:59.9634957Z               "path": "crates/spt-proto/src/version.rs",
2026-06-18T11:17:59.9635228Z               "line": 71
2026-06-18T11:17:59.9635442Z             },
2026-06-18T11:17:59.9635639Z             {
2026-06-18T11:17:59.9635874Z               "path": "crates/spt-proto/src/version.rs",
2026-06-18T11:17:59.9636151Z               "line": 83
2026-06-18T11:17:59.9636532Z             }
2026-06-18T11:17:59.9636714Z           ]
2026-06-18T11:17:59.9636890Z         }
2026-06-18T11:17:59.9637062Z       }
2026-06-18T11:17:59.9637276Z     },
2026-06-18T11:17:59.9637461Z     {
2026-06-18T11:17:59.9637630Z       "id": "REQ-ARCH-4",
2026-06-18T11:17:59.9637927Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-18T11:17:59.9638264Z       "requiredStages": [
2026-06-18T11:17:59.9638479Z         "impl",
2026-06-18T11:17:59.9638694Z         "unit"
2026-06-18T11:17:59.9638879Z       ],
2026-06-18T11:17:59.9639122Z       "stages": {
2026-06-18T11:17:59.9639318Z         "doc": {
2026-06-18T11:17:59.9639523Z           "complete": false,
2026-06-18T11:17:59.9639762Z           "evidence": []
2026-06-18T11:17:59.9639976Z         },
2026-06-18T11:17:59.9640158Z         "impl": {
2026-06-18T11:17:59.9640352Z           "complete": true,
2026-06-18T11:17:59.9640583Z           "evidence": [
2026-06-18T11:17:59.9640794Z             {
2026-06-18T11:17:59.9641028Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:17:59.9641302Z               "line": 165
2026-06-18T11:17:59.9641497Z             },
2026-06-18T11:17:59.9641700Z             {
2026-06-18T11:17:59.9641920Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:17:59.9642198Z               "line": 188
2026-06-18T11:17:59.9642417Z             },
2026-06-18T11:17:59.9642602Z             {
2026-06-18T11:17:59.9642814Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:17:59.9643078Z               "line": 208
2026-06-18T11:17:59.9643271Z             },
2026-06-18T11:17:59.9643462Z             {
2026-06-18T11:17:59.9643681Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:17:59.9643943Z               "line": 223
2026-06-18T11:17:59.9644134Z             },
2026-06-18T11:17:59.9644340Z             {
2026-06-18T11:17:59.9644558Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:17:59.9644831Z               "line": 273
2026-06-18T11:17:59.9645060Z             }
2026-06-18T11:17:59.9645255Z           ]
2026-06-18T11:17:59.9645454Z         },
2026-06-18T11:17:59.9645623Z         "int": {
2026-06-18T11:17:59.9645836Z           "complete": false,
2026-06-18T11:17:59.9646068Z           "evidence": []
2026-06-18T11:17:59.9646281Z         },
2026-06-18T11:17:59.9646491Z         "unit": {
2026-06-18T11:17:59.9646692Z           "complete": true,
2026-06-18T11:17:59.9646931Z           "evidence": [
2026-06-18T11:17:59.9647135Z             {
2026-06-18T11:17:59.9647369Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:17:59.9647622Z               "line": 334
2026-06-18T11:17:59.9647831Z             },
2026-06-18T11:17:59.9648026Z             {
2026-06-18T11:17:59.9648242Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:17:59.9648507Z               "line": 344
2026-06-18T11:17:59.9648719Z             },
2026-06-18T11:17:59.9648911Z             {
2026-06-18T11:17:59.9649211Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:17:59.9649478Z               "line": 355
2026-06-18T11:17:59.9649682Z             },
2026-06-18T11:17:59.9649878Z             {
2026-06-18T11:17:59.9650088Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:17:59.9650350Z               "line": 366
2026-06-18T11:17:59.9650674Z             },
2026-06-18T11:17:59.9650870Z             {
2026-06-18T11:17:59.9651071Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:17:59.9651341Z               "line": 378
2026-06-18T11:17:59.9651547Z             },
2026-06-18T11:17:59.9651742Z             {
2026-06-18T11:17:59.9651951Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:17:59.9652219Z               "line": 391
2026-06-18T11:17:59.9652429Z             },
2026-06-18T11:17:59.9652628Z             {
2026-06-18T11:17:59.9652838Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:17:59.9653110Z               "line": 402
2026-06-18T11:17:59.9653406Z             },
2026-06-18T11:17:59.9653599Z             {
2026-06-18T11:17:59.9653822Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:17:59.9654095Z               "line": 419
2026-06-18T11:17:59.9654303Z             },
2026-06-18T11:17:59.9654489Z             {
2026-06-18T11:17:59.9654709Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:17:59.9654981Z               "line": 547
2026-06-18T11:17:59.9674030Z             }
2026-06-18T11:17:59.9674291Z           ]
2026-06-18T11:17:59.9674465Z         }
2026-06-18T11:17:59.9674649Z       }
2026-06-18T11:17:59.9674820Z     },
2026-06-18T11:17:59.9674999Z     {
2026-06-18T11:17:59.9675181Z       "id": "REQ-CLI-1",
2026-06-18T11:17:59.9676407Z       "title": "spt endpoint noun namespace: absorbs fork/suspend/wake/shutdown/rename/stop/digest + access (ported 1:1: allow|revoke|open|list, decision 21) + description (ex-resources blurb; bare=show, set=author); merged endpoint list [--local|--subnet <name>] grouped by subnet with SELF pinned, --detail adding the ex-resources yellow-pages blurb projection; bare spt endpoint = the list (M8 decisions 1-2, 25)",
2026-06-18T11:17:59.9677616Z       "requiredStages": [
2026-06-18T11:17:59.9677838Z         "impl",
2026-06-18T11:17:59.9678034Z         "unit"
2026-06-18T11:17:59.9678224Z       ],
2026-06-18T11:17:59.9678406Z       "stages": {
2026-06-18T11:17:59.9678621Z         "doc": {
2026-06-18T11:17:59.9678815Z           "complete": false,
2026-06-18T11:17:59.9679125Z           "evidence": []
2026-06-18T11:17:59.9679321Z         },
2026-06-18T11:17:59.9679488Z         "impl": {
2026-06-18T11:17:59.9679697Z           "complete": true,
2026-06-18T11:17:59.9679918Z           "evidence": [
2026-06-18T11:17:59.9680120Z             {
2026-06-18T11:17:59.9680333Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9680605Z               "line": 225
2026-06-18T11:17:59.9680805Z             },
2026-06-18T11:17:59.9681001Z             {
2026-06-18T11:17:59.9681206Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9681454Z               "line": 1076
2026-06-18T11:17:59.9681654Z             },
2026-06-18T11:17:59.9681841Z             {
2026-06-18T11:17:59.9682045Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9682302Z               "line": 1605
2026-06-18T11:17:59.9682517Z             },
2026-06-18T11:17:59.9682703Z             {
2026-06-18T11:17:59.9682902Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9683151Z               "line": 2992
2026-06-18T11:17:59.9683360Z             }
2026-06-18T11:17:59.9683542Z           ]
2026-06-18T11:17:59.9683728Z         },
2026-06-18T11:17:59.9683908Z         "int": {
2026-06-18T11:17:59.9684109Z           "complete": false,
2026-06-18T11:17:59.9684313Z           "evidence": []
2026-06-18T11:17:59.9684523Z         },
2026-06-18T11:17:59.9684706Z         "unit": {
2026-06-18T11:17:59.9684886Z           "complete": true,
2026-06-18T11:17:59.9685096Z           "evidence": [
2026-06-18T11:17:59.9685304Z             {
2026-06-18T11:17:59.9685516Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9685770Z               "line": 7786
2026-06-18T11:17:59.9685980Z             }
2026-06-18T11:17:59.9686151Z           ]
2026-06-18T11:17:59.9686309Z         }
2026-06-18T11:17:59.9686470Z       }
2026-06-18T11:17:59.9686790Z     },
2026-06-18T11:17:59.9686971Z     {
2026-06-18T11:17:59.9687161Z       "id": "REQ-CLI-2",
2026-06-18T11:17:59.9687978Z       "title": "spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown keeps its name under endpoint); daemon status renders the pump heartbeat (last-tick recency) so a half-dead daemon is never rendered implied-healthy (M8 decisions 5, 23)",
2026-06-18T11:17:59.9688812Z       "requiredStages": [
2026-06-18T11:17:59.9689108Z         "impl",
2026-06-18T11:17:59.9689290Z         "unit"
2026-06-18T11:17:59.9689486Z       ],
2026-06-18T11:17:59.9689671Z       "stages": {
2026-06-18T11:17:59.9689995Z         "doc": {
2026-06-18T11:17:59.9690215Z           "complete": false,
2026-06-18T11:17:59.9690454Z           "evidence": []
2026-06-18T11:17:59.9690662Z         },
2026-06-18T11:17:59.9690838Z         "impl": {
2026-06-18T11:17:59.9691040Z           "complete": true,
2026-06-18T11:17:59.9691255Z           "evidence": [
2026-06-18T11:17:59.9691461Z             {
2026-06-18T11:17:59.9691679Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:17:59.9691961Z               "line": 409
2026-06-18T11:17:59.9692171Z             },
2026-06-18T11:17:59.9692357Z             {
2026-06-18T11:17:59.9692586Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-18T11:17:59.9692853Z               "line": 97
2026-06-18T11:17:59.9693050Z             },
2026-06-18T11:17:59.9693244Z             {
2026-06-18T11:17:59.9693458Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-18T11:17:59.9693720Z               "line": 256
2026-06-18T11:17:59.9693920Z             },
2026-06-18T11:17:59.9694111Z             {
2026-06-18T11:17:59.9694326Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9694592Z               "line": 436
2026-06-18T11:17:59.9694797Z             },
2026-06-18T11:17:59.9694993Z             {
2026-06-18T11:17:59.9695193Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9695465Z               "line": 1160
2026-06-18T11:17:59.9695679Z             },
2026-06-18T11:17:59.9695864Z             {
2026-06-18T11:17:59.9696053Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9696311Z               "line": 1846
2026-06-18T11:17:59.9696515Z             },
2026-06-18T11:17:59.9696711Z             {
2026-06-18T11:17:59.9696921Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9697174Z               "line": 1925
2026-06-18T11:17:59.9697373Z             },
2026-06-18T11:17:59.9697555Z             {
2026-06-18T11:17:59.9697770Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9698031Z               "line": 1986
2026-06-18T11:17:59.9698246Z             }
2026-06-18T11:17:59.9698438Z           ]
2026-06-18T11:17:59.9698622Z         },
2026-06-18T11:17:59.9698803Z         "int": {
2026-06-18T11:17:59.9699077Z           "complete": false,
2026-06-18T11:17:59.9699291Z           "evidence": []
2026-06-18T11:17:59.9699511Z         },
2026-06-18T11:17:59.9699697Z         "unit": {
2026-06-18T11:17:59.9699907Z           "complete": true,
2026-06-18T11:17:59.9700132Z           "evidence": [
2026-06-18T11:17:59.9700336Z             {
2026-06-18T11:17:59.9700560Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-18T11:17:59.9700841Z               "line": 338
2026-06-18T11:17:59.9701033Z             },
2026-06-18T11:17:59.9701227Z             {
2026-06-18T11:17:59.9701436Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9701697Z               "line": 7924
2026-06-18T11:17:59.9701906Z             }
2026-06-18T11:17:59.9702088Z           ]
2026-06-18T11:17:59.9702274Z         }
2026-06-18T11:17:59.9702478Z       }
2026-06-18T11:17:59.9702665Z     },
2026-06-18T11:17:59.9702845Z     {
2026-06-18T11:17:59.9703022Z       "id": "REQ-CLI-3",
2026-06-18T11:17:59.9703863Z       "title": "Agent hot path stays flat across the M8 reorg: send/ring/ready/whoami/how-to unchanged; notify moves to subnet notify while notif stays top-level; breaking renames land clean with no deprecation shims (zero external CLI consumers pre-spt-claude-code) (M8 decisions 3-4, 9)",
2026-06-18T11:17:59.9704833Z       "requiredStages": [
2026-06-18T11:17:59.9705071Z         "impl",
2026-06-18T11:17:59.9705277Z         "unit"
2026-06-18T11:17:59.9705468Z       ],
2026-06-18T11:17:59.9705658Z       "stages": {
2026-06-18T11:17:59.9705854Z         "doc": {
2026-06-18T11:17:59.9706054Z           "complete": false,
2026-06-18T11:17:59.9706282Z           "evidence": []
2026-06-18T11:17:59.9706491Z         },
2026-06-18T11:17:59.9706679Z         "impl": {
2026-06-18T11:17:59.9706876Z           "complete": true,
2026-06-18T11:17:59.9707205Z           "evidence": [
2026-06-18T11:17:59.9707420Z             {
2026-06-18T11:17:59.9707609Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9707867Z               "line": 1070
2026-06-18T11:17:59.9708096Z             }
2026-06-18T11:17:59.9708291Z           ]
2026-06-18T11:17:59.9708482Z         },
2026-06-18T11:17:59.9708659Z         "int": {
2026-06-18T11:17:59.9708853Z           "complete": false,
2026-06-18T11:17:59.9709159Z           "evidence": []
2026-06-18T11:17:59.9709368Z         },
2026-06-18T11:17:59.9709565Z         "unit": {
2026-06-18T11:17:59.9709767Z           "complete": true,
2026-06-18T11:17:59.9709986Z           "evidence": [
2026-06-18T11:17:59.9710185Z             {
2026-06-18T11:17:59.9710377Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9710630Z               "line": 7751
2026-06-18T11:17:59.9710838Z             }
2026-06-18T11:17:59.9711030Z           ]
2026-06-18T11:17:59.9711221Z         }
2026-06-18T11:17:59.9711410Z       }
2026-06-18T11:17:59.9711603Z     },
2026-06-18T11:17:59.9711787Z     {
2026-06-18T11:17:59.9711977Z       "id": "REQ-CLI-4",
2026-06-18T11:17:59.9714312Z       "title": "User-facing CLI output is human-readable: DIRECT-USER commands (e.g. adapter update/list/use) render friendly prose instead of raw CODE:RESULT markers — \"claude-spt is up to date (0.2.0).\" not \"ADAPTER_UPDATE_UPTODATE:claude-spt: installed 0.2.0, latest 0.2.0\". Strictly bounded to the direct-user surface: the adapter-PARSED bringup tokens (SEEDED/BOUND/READY/NO_SEED on seed/listen, which adapters grep) stay machine-parseable — humanization is additive (a human line beside the marker, or a --porcelain/--quiet split), never a silent rename of a dual-contract marker. The user-facing bringup composition belongs to the adapter (perri); this REQ owns only the direct-user CLI surface. (v0.9.0)",
2026-06-18T11:17:59.9716227Z       "requiredStages": [],
2026-06-18T11:17:59.9716452Z       "stages": {
2026-06-18T11:17:59.9716647Z         "doc": {
2026-06-18T11:17:59.9716875Z           "complete": false,
2026-06-18T11:17:59.9717107Z           "evidence": []
2026-06-18T11:17:59.9717321Z         },
2026-06-18T11:17:59.9717502Z         "impl": {
2026-06-18T11:17:59.9717717Z           "complete": true,
2026-06-18T11:17:59.9717936Z           "evidence": [
2026-06-18T11:17:59.9718164Z             {
2026-06-18T11:17:59.9718375Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9718638Z               "line": 5517
2026-06-18T11:17:59.9718846Z             }
2026-06-18T11:17:59.9719133Z           ]
2026-06-18T11:17:59.9719310Z         },
2026-06-18T11:17:59.9719490Z         "int": {
2026-06-18T11:17:59.9719700Z           "complete": false,
2026-06-18T11:17:59.9719933Z           "evidence": []
2026-06-18T11:17:59.9720144Z         },
2026-06-18T11:17:59.9720327Z         "unit": {
2026-06-18T11:17:59.9720537Z           "complete": false,
2026-06-18T11:17:59.9720764Z           "evidence": []
2026-06-18T11:17:59.9720956Z         }
2026-06-18T11:17:59.9721132Z       }
2026-06-18T11:17:59.9721318Z     },
2026-06-18T11:17:59.9721510Z     {
2026-06-18T11:17:59.9721704Z       "id": "REQ-CONSENT-1",
2026-06-18T11:17:59.9722721Z       "title": "Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, subnet-settable (replicates as security material near the trust store), revocable; gated-capability ids (remote-exec, instantiate-anywhere) reserved-but-refusing; v1 consumers are the shell spawn gates (CONTEXT Consent & security gates)",
2026-06-18T11:17:59.9723865Z       "requiredStages": [
2026-06-18T11:17:59.9724086Z         "impl",
2026-06-18T11:17:59.9724290Z         "unit"
2026-06-18T11:17:59.9724476Z       ],
2026-06-18T11:17:59.9724653Z       "stages": {
2026-06-18T11:17:59.9724862Z         "doc": {
2026-06-18T11:17:59.9725054Z           "complete": false,
2026-06-18T11:17:59.9725271Z           "evidence": []
2026-06-18T11:17:59.9725481Z         },
2026-06-18T11:17:59.9725672Z         "impl": {
2026-06-18T11:17:59.9725968Z           "complete": true,
2026-06-18T11:17:59.9726191Z           "evidence": [
2026-06-18T11:17:59.9726406Z             {
2026-06-18T11:17:59.9726646Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T11:17:59.9726922Z               "line": 27
2026-06-18T11:17:59.9727126Z             },
2026-06-18T11:17:59.9727327Z             {
2026-06-18T11:17:59.9727545Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T11:17:59.9727809Z               "line": 75
2026-06-18T11:17:59.9728015Z             },
2026-06-18T11:17:59.9728205Z             {
2026-06-18T11:17:59.9728434Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T11:17:59.9728701Z               "line": 98
2026-06-18T11:17:59.9728907Z             },
2026-06-18T11:17:59.9729179Z             {
2026-06-18T11:17:59.9729412Z               "path": "crates/spt-store/src/grants.rs",
2026-06-18T11:17:59.9729683Z               "line": 82
2026-06-18T11:17:59.9729898Z             },
2026-06-18T11:17:59.9730085Z             {
2026-06-18T11:17:59.9730284Z               "path": "crates/spt-store/src/grants.rs",
2026-06-18T11:17:59.9730553Z               "line": 109
2026-06-18T11:17:59.9730772Z             },
2026-06-18T11:17:59.9730958Z             {
2026-06-18T11:17:59.9731173Z               "path": "crates/spt-store/src/grants.rs",
2026-06-18T11:17:59.9731431Z               "line": 127
2026-06-18T11:17:59.9731635Z             },
2026-06-18T11:17:59.9731821Z             {
2026-06-18T11:17:59.9732041Z               "path": "crates/spt-store/src/grants.rs",
2026-06-18T11:17:59.9732312Z               "line": 142
2026-06-18T11:17:59.9732522Z             },
2026-06-18T11:17:59.9732700Z             {
2026-06-18T11:17:59.9732912Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9733167Z               "line": 6887
2026-06-18T11:17:59.9733387Z             }
2026-06-18T11:17:59.9733576Z           ]
2026-06-18T11:17:59.9733749Z         },
2026-06-18T11:17:59.9733944Z         "int": {
2026-06-18T11:17:59.9734154Z           "complete": false,
2026-06-18T11:17:59.9734383Z           "evidence": []
2026-06-18T11:17:59.9734598Z         },
2026-06-18T11:17:59.9734789Z         "unit": {
2026-06-18T11:17:59.9735003Z           "complete": true,
2026-06-18T11:17:59.9735228Z           "evidence": [
2026-06-18T11:17:59.9735437Z             {
2026-06-18T11:17:59.9735661Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T11:17:59.9735947Z               "line": 334
2026-06-18T11:17:59.9736155Z             },
2026-06-18T11:17:59.9736333Z             {
2026-06-18T11:17:59.9736533Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T11:17:59.9736814Z               "line": 380
2026-06-18T11:17:59.9737024Z             },
2026-06-18T11:17:59.9737206Z             {
2026-06-18T11:17:59.9737463Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T11:17:59.9737739Z               "line": 391
2026-06-18T11:17:59.9737948Z             },
2026-06-18T11:17:59.9738138Z             {
2026-06-18T11:17:59.9738369Z               "path": "crates/spt-store/src/grants.rs",
2026-06-18T11:17:59.9738636Z               "line": 165
2026-06-18T11:17:59.9738847Z             },
2026-06-18T11:17:59.9739100Z             {
2026-06-18T11:17:59.9739318Z               "path": "crates/spt-store/src/grants.rs",
2026-06-18T11:17:59.9739590Z               "line": 184
2026-06-18T11:17:59.9739909Z             },
2026-06-18T11:17:59.9740102Z             {
2026-06-18T11:17:59.9740315Z               "path": "crates/spt-store/src/grants.rs",
2026-06-18T11:17:59.9740592Z               "line": 204
2026-06-18T11:17:59.9740806Z             },
2026-06-18T11:17:59.9741000Z             {
2026-06-18T11:17:59.9741208Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9741461Z               "line": 8104
2026-06-18T11:17:59.9741676Z             }
2026-06-18T11:17:59.9741861Z           ]
2026-06-18T11:17:59.9742052Z         }
2026-06-18T11:17:59.9742243Z       }
2026-06-18T11:17:59.9742424Z     },
2026-06-18T11:17:59.9742729Z     {
2026-06-18T11:17:59.9742926Z       "id": "REQ-CONSENT-2",
2026-06-18T11:17:59.9743865Z       "title": "Interactive consent escalation: an ungated high-risk action routes a consent prompt to the user's most-recently-active session; allow-once / allow-always (writes a grant) / deny; pre-consent flags (can_shutdown, shell_wake_spawn_anywhere) author grants via manifest/settings (CONTEXT Consent & security gates)",
2026-06-18T11:17:59.9744849Z       "requiredStages": [
2026-06-18T11:17:59.9745057Z         "impl",
2026-06-18T11:17:59.9745258Z         "unit"
2026-06-18T11:17:59.9745458Z       ],
2026-06-18T11:17:59.9745643Z       "stages": {
2026-06-18T11:17:59.9745845Z         "doc": {
2026-06-18T11:17:59.9746044Z           "complete": false,
2026-06-18T11:17:59.9746277Z           "evidence": []
2026-06-18T11:17:59.9746487Z         },
2026-06-18T11:17:59.9746672Z         "impl": {
2026-06-18T11:17:59.9746883Z           "complete": true,
2026-06-18T11:17:59.9747107Z           "evidence": [
2026-06-18T11:17:59.9747316Z             {
2026-06-18T11:17:59.9747607Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T11:17:59.9747884Z               "line": 140
2026-06-18T11:17:59.9748100Z             },
2026-06-18T11:17:59.9748294Z             {
2026-06-18T11:17:59.9748504Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T11:17:59.9748793Z               "line": 165
2026-06-18T11:17:59.9749069Z             },
2026-06-18T11:17:59.9749254Z             {
2026-06-18T11:17:59.9749455Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T11:17:59.9749731Z               "line": 199
2026-06-18T11:17:59.9749931Z             },
2026-06-18T11:17:59.9750108Z             {
2026-06-18T11:17:59.9750318Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T11:17:59.9750585Z               "line": 241
2026-06-18T11:17:59.9750799Z             },
2026-06-18T11:17:59.9750991Z             {
2026-06-18T11:17:59.9751215Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T11:17:59.9751489Z               "line": 269
2026-06-18T11:17:59.9751697Z             },
2026-06-18T11:17:59.9751878Z             {
2026-06-18T11:17:59.9752092Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T11:17:59.9752346Z               "line": 300
2026-06-18T11:17:59.9752556Z             },
2026-06-18T11:17:59.9752740Z             {
2026-06-18T11:17:59.9752950Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9753219Z               "line": 6678
2026-06-18T11:17:59.9753432Z             },
2026-06-18T11:17:59.9753637Z             {
2026-06-18T11:17:59.9753853Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9754103Z               "line": 6736
2026-06-18T11:17:59.9754321Z             }
2026-06-18T11:17:59.9754517Z           ]
2026-06-18T11:17:59.9754701Z         },
2026-06-18T11:17:59.9754898Z         "int": {
2026-06-18T11:17:59.9755108Z           "complete": false,
2026-06-18T11:17:59.9755331Z           "evidence": []
2026-06-18T11:17:59.9755551Z         },
2026-06-18T11:17:59.9755718Z         "unit": {
2026-06-18T11:17:59.9762333Z           "complete": true,
2026-06-18T11:17:59.9762600Z           "evidence": [
2026-06-18T11:17:59.9762797Z             {
2026-06-18T11:17:59.9763043Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T11:17:59.9763510Z               "line": 419
2026-06-18T11:17:59.9763731Z             },
2026-06-18T11:17:59.9763916Z             {
2026-06-18T11:17:59.9764150Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T11:17:59.9764428Z               "line": 436
2026-06-18T11:17:59.9764654Z             },
2026-06-18T11:17:59.9764852Z             {
2026-06-18T11:17:59.9765091Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T11:17:59.9765359Z               "line": 472
2026-06-18T11:17:59.9765567Z             },
2026-06-18T11:17:59.9765754Z             {
2026-06-18T11:17:59.9765974Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T11:17:59.9766230Z               "line": 516
2026-06-18T11:17:59.9766540Z             },
2026-06-18T11:17:59.9766735Z             {
2026-06-18T11:17:59.9766927Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9767184Z               "line": 9384
2026-06-18T11:17:59.9767397Z             },
2026-06-18T11:17:59.9767579Z             {
2026-06-18T11:17:59.9767788Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9768041Z               "line": 9466
2026-06-18T11:17:59.9768251Z             }
2026-06-18T11:17:59.9768441Z           ]
2026-06-18T11:17:59.9768628Z         }
2026-06-18T11:17:59.9768809Z       }
2026-06-18T11:17:59.9769076Z     },
2026-06-18T11:17:59.9769243Z     {
2026-06-18T11:17:59.9769438Z       "id": "REQ-CONSENT-3",
2026-06-18T11:17:59.9771486Z       "title": "Per-capability approval gates (class-keyed): the require_approval enum may ride INDIVIDUAL [shell.capabilities] entries — gating the dangerous ACT, not just the spawn — with an optional class_key scoping the grant qualifier finer than the capability id ((owner endpoint x device class x node); a remembered HID-class attach grant never authorizes a storage-class attach). Reuses the grant store + interactive escalation + tighten-only floor (REQ-CONSENT-1/2 plumbing). Spawn gates govern EXISTENCE; capability gates govern ACTS — an explicitly distinct invariant (CONTEXT:283, ratified 2026-06-11 Gateway grill).",
2026-06-18T11:17:59.9773241Z       "requiredStages": [
2026-06-18T11:17:59.9773494Z         "doc",
2026-06-18T11:17:59.9773705Z         "impl",
2026-06-18T11:17:59.9773894Z         "unit",
2026-06-18T11:17:59.9774085Z         "int"
2026-06-18T11:17:59.9774257Z       ],
2026-06-18T11:17:59.9774452Z       "stages": {
2026-06-18T11:17:59.9774644Z         "doc": {
2026-06-18T11:17:59.9774853Z           "complete": true,
2026-06-18T11:17:59.9775071Z           "evidence": [
2026-06-18T11:17:59.9775271Z             {
2026-06-18T11:17:59.9775460Z               "path": "CONTEXT.md",
2026-06-18T11:17:59.9775685Z               "line": 304
2026-06-18T11:17:59.9775909Z             }
2026-06-18T11:17:59.9776098Z           ]
2026-06-18T11:17:59.9776290Z         },
2026-06-18T11:17:59.9776470Z         "impl": {
2026-06-18T11:17:59.9776671Z           "complete": true,
2026-06-18T11:17:59.9776892Z           "evidence": [
2026-06-18T11:17:59.9777095Z             {
2026-06-18T11:17:59.9777319Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T11:17:59.9777596Z               "line": 123
2026-06-18T11:17:59.9777802Z             },
2026-06-18T11:17:59.9778001Z             {
2026-06-18T11:17:59.9778221Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T11:17:59.9778487Z               "line": 162
2026-06-18T11:17:59.9778682Z             },
2026-06-18T11:17:59.9778878Z             {
2026-06-18T11:17:59.9779164Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T11:17:59.9779422Z               "line": 291
2026-06-18T11:17:59.9779631Z             },
2026-06-18T11:17:59.9779827Z             {
2026-06-18T11:17:59.9780057Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:17:59.9780335Z               "line": 530
2026-06-18T11:17:59.9780534Z             },
2026-06-18T11:17:59.9780724Z             {
2026-06-18T11:17:59.9780938Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:17:59.9781301Z               "line": 780
2026-06-18T11:17:59.9781521Z             },
2026-06-18T11:17:59.9781703Z             {
2026-06-18T11:17:59.9781917Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9782155Z               "line": 6804
2026-06-18T11:17:59.9782347Z             }
2026-06-18T11:17:59.9782541Z           ]
2026-06-18T11:17:59.9782732Z         },
2026-06-18T11:17:59.9782904Z         "int": {
2026-06-18T11:17:59.9783098Z           "complete": true,
2026-06-18T11:17:59.9783326Z           "evidence": [
2026-06-18T11:17:59.9783539Z             {
2026-06-18T11:17:59.9783786Z               "path": "crates/spt/tests/shell_actgate_e2e.rs",
2026-06-18T11:17:59.9784178Z               "line": 16
2026-06-18T11:17:59.9784393Z             }
2026-06-18T11:17:59.9784570Z           ]
2026-06-18T11:17:59.9784764Z         },
2026-06-18T11:17:59.9784932Z         "unit": {
2026-06-18T11:17:59.9785137Z           "complete": true,
2026-06-18T11:17:59.9785356Z           "evidence": [
2026-06-18T11:17:59.9785562Z             {
2026-06-18T11:17:59.9785769Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T11:17:59.9786058Z               "line": 1019
2026-06-18T11:17:59.9786278Z             },
2026-06-18T11:17:59.9786479Z             {
2026-06-18T11:17:59.9786702Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T11:17:59.9786983Z               "line": 1066
2026-06-18T11:17:59.9787174Z             },
2026-06-18T11:17:59.9787369Z             {
2026-06-18T11:17:59.9787598Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:17:59.9787889Z               "line": 1191
2026-06-18T11:17:59.9788096Z             }
2026-06-18T11:17:59.9788280Z           ]
2026-06-18T11:17:59.9788457Z         }
2026-06-18T11:17:59.9788646Z       }
2026-06-18T11:17:59.9788828Z     },
2026-06-18T11:17:59.9789086Z     {
2026-06-18T11:17:59.9789280Z       "id": "REQ-CONV-1",
2026-06-18T11:17:59.9790810Z       "title": "Peer address seeding, both cold starts: durable peer-addrs.json (identity dir) maps peer pubkey → last-known dialable address; the pump's resolver consults it FIRST with id-only discovery fallback on miss or dial failure (a stale addr never strands a peer); written by the pairing ceremony (both sides, from the live connection) and by the pump on successful connect; post-join first sync and post-restart resync converge in seconds, not ~1 min (M8 decisions 14, 20)",
2026-06-18T11:17:59.9792162Z       "requiredStages": [
2026-06-18T11:17:59.9792381Z         "impl",
2026-06-18T11:17:59.9792587Z         "unit"
2026-06-18T11:17:59.9792786Z       ],
2026-06-18T11:17:59.9792982Z       "stages": {
2026-06-18T11:17:59.9793184Z         "doc": {
2026-06-18T11:17:59.9793388Z           "complete": false,
2026-06-18T11:17:59.9793630Z           "evidence": []
2026-06-18T11:17:59.9793854Z         },
2026-06-18T11:17:59.9794022Z         "impl": {
2026-06-18T11:17:59.9794219Z           "complete": true,
2026-06-18T11:17:59.9794443Z           "evidence": [
2026-06-18T11:17:59.9794652Z             {
2026-06-18T11:17:59.9794881Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:17:59.9795163Z               "line": 938
2026-06-18T11:17:59.9795387Z             },
2026-06-18T11:17:59.9795562Z             {
2026-06-18T11:17:59.9795803Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T11:17:59.9796070Z               "line": 94
2026-06-18T11:17:59.9796282Z             },
2026-06-18T11:17:59.9796481Z             {
2026-06-18T11:17:59.9796714Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T11:17:59.9796995Z               "line": 345
2026-06-18T11:17:59.9797209Z             },
2026-06-18T11:17:59.9797410Z             {
2026-06-18T11:17:59.9797620Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T11:17:59.9797896Z               "line": 387
2026-06-18T11:17:59.9798101Z             },
2026-06-18T11:17:59.9798298Z             {
2026-06-18T11:17:59.9798511Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T11:17:59.9798904Z               "line": 472
2026-06-18T11:17:59.9799196Z             },
2026-06-18T11:17:59.9799388Z             {
2026-06-18T11:17:59.9799613Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:17:59.9799879Z               "line": 667
2026-06-18T11:17:59.9800093Z             },
2026-06-18T11:17:59.9800289Z             {
2026-06-18T11:17:59.9800504Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:17:59.9800775Z               "line": 693
2026-06-18T11:17:59.9800984Z             },
2026-06-18T11:17:59.9801172Z             {
2026-06-18T11:17:59.9801394Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T11:17:59.9801792Z               "line": 369
2026-06-18T11:17:59.9802007Z             },
2026-06-18T11:17:59.9802184Z             {
2026-06-18T11:17:59.9802412Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-18T11:17:59.9802679Z               "line": 19
2026-06-18T11:17:59.9802880Z             }
2026-06-18T11:17:59.9803075Z           ]
2026-06-18T11:17:59.9803299Z         },
2026-06-18T11:17:59.9803490Z         "int": {
2026-06-18T11:17:59.9803696Z           "complete": false,
2026-06-18T11:17:59.9803938Z           "evidence": []
2026-06-18T11:17:59.9804162Z         },
2026-06-18T11:17:59.9804356Z         "unit": {
2026-06-18T11:17:59.9804555Z           "complete": true,
2026-06-18T11:17:59.9804784Z           "evidence": [
2026-06-18T11:17:59.9804988Z             {
2026-06-18T11:17:59.9805208Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:17:59.9805503Z               "line": 1263
2026-06-18T11:17:59.9805723Z             },
2026-06-18T11:17:59.9805918Z             {
2026-06-18T11:17:59.9806161Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-18T11:17:59.9806456Z               "line": 108
2026-06-18T11:17:59.9806677Z             },
2026-06-18T11:17:59.9806871Z             {
2026-06-18T11:17:59.9807098Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-18T11:17:59.9807389Z               "line": 134
2026-06-18T11:17:59.9807604Z             },
2026-06-18T11:17:59.9807802Z             {
2026-06-18T11:17:59.9808028Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-18T11:17:59.9808309Z               "line": 144
2026-06-18T11:17:59.9808524Z             }
2026-06-18T11:17:59.9808719Z           ]
2026-06-18T11:17:59.9808906Z         }
2026-06-18T11:17:59.9809610Z       }
2026-06-18T11:17:59.9809906Z     },
2026-06-18T11:17:59.9810134Z     {
2026-06-18T11:17:59.9810367Z       "id": "REQ-CONV-2",
2026-06-18T11:17:59.9812016Z       "title": "Event-driven advertisement: endpoint online/offline transitions (ready-listener start/stop, rest-state transition, perch death) trigger an immediate advertise_local + peer push as a WAKE of the existing pump loop (no second advertisement path — epoch lease + visibility gates ride unchanged); the cadence stays the steady-state floor (M8 decision 15)",
2026-06-18T11:17:59.9813425Z       "requiredStages": [
2026-06-18T11:17:59.9813721Z         "impl",
2026-06-18T11:17:59.9813975Z         "unit"
2026-06-18T11:17:59.9814221Z       ],
2026-06-18T11:17:59.9814460Z       "stages": {
2026-06-18T11:17:59.9814722Z         "doc": {
2026-06-18T11:17:59.9814969Z           "complete": false,
2026-06-18T11:17:59.9815248Z           "evidence": []
2026-06-18T11:17:59.9815520Z         },
2026-06-18T11:17:59.9815748Z         "impl": {
2026-06-18T11:17:59.9816007Z           "complete": true,
2026-06-18T11:17:59.9816274Z           "evidence": [
2026-06-18T11:17:59.9816532Z             {
2026-06-18T11:17:59.9816837Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:17:59.9817199Z               "line": 409
2026-06-18T11:17:59.9817469Z             },
2026-06-18T11:17:59.9817719Z             {
2026-06-18T11:17:59.9818029Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-18T11:17:59.9818377Z               "line": 119
2026-06-18T11:17:59.9818635Z             },
2026-06-18T11:17:59.9818874Z             {
2026-06-18T11:17:59.9819541Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:17:59.9819888Z               "line": 841
2026-06-18T11:17:59.9820156Z             },
2026-06-18T11:17:59.9820389Z             {
2026-06-18T11:17:59.9820660Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:17:59.9821009Z               "line": 852
2026-06-18T11:17:59.9821275Z             },
2026-06-18T11:17:59.9821523Z             {
2026-06-18T11:17:59.9821781Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:17:59.9822109Z               "line": 334
2026-06-18T11:17:59.9822373Z             },
2026-06-18T11:17:59.9822624Z             {
2026-06-18T11:17:59.9822893Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9823008Z               "line": 2945
2026-06-18T11:17:59.9823117Z             },
2026-06-18T11:17:59.9823218Z             {
2026-06-18T11:17:59.9823351Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9823451Z               "line": 2961
2026-06-18T11:17:59.9823547Z             },
2026-06-18T11:17:59.9823628Z             {
2026-06-18T11:17:59.9823737Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9823832Z               "line": 3028
2026-06-18T11:17:59.9823920Z             }
2026-06-18T11:17:59.9824014Z           ]
2026-06-18T11:17:59.9824094Z         },
2026-06-18T11:17:59.9824176Z         "int": {
2026-06-18T11:17:59.9824277Z           "complete": false,
2026-06-18T11:17:59.9824363Z           "evidence": []
2026-06-18T11:17:59.9824453Z         },
2026-06-18T11:17:59.9824535Z         "unit": {
2026-06-18T11:17:59.9824633Z           "complete": true,
2026-06-18T11:17:59.9824738Z           "evidence": [
2026-06-18T11:17:59.9824830Z             {
2026-06-18T11:17:59.9824958Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:17:59.9825049Z               "line": 889
2026-06-18T11:17:59.9825141Z             },
2026-06-18T11:17:59.9825222Z             {
2026-06-18T11:17:59.9825348Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:17:59.9825453Z               "line": 1014
2026-06-18T11:17:59.9825529Z             },
2026-06-18T11:17:59.9825618Z             {
2026-06-18T11:17:59.9825750Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-18T11:17:59.9825852Z               "line": 215
2026-06-18T11:17:59.9825933Z             }
2026-06-18T11:17:59.9826032Z           ]
2026-06-18T11:17:59.9826113Z         }
2026-06-18T11:17:59.9826190Z       }
2026-06-18T11:17:59.9826276Z     },
2026-06-18T11:17:59.9826361Z     {
2026-06-18T11:17:59.9826467Z       "id": "REQ-DAEMON-1",
2026-06-18T11:17:59.9826642Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-18T11:17:59.9826752Z       "requiredStages": [
2026-06-18T11:17:59.9826848Z         "impl",
2026-06-18T11:17:59.9826938Z         "unit",
2026-06-18T11:17:59.9827029Z         "int"
2026-06-18T11:17:59.9827116Z       ],
2026-06-18T11:17:59.9827215Z       "stages": {
2026-06-18T11:17:59.9827305Z         "doc": {
2026-06-18T11:17:59.9827407Z           "complete": false,
2026-06-18T11:17:59.9827492Z           "evidence": []
2026-06-18T11:17:59.9827620Z         },
2026-06-18T11:17:59.9827726Z         "impl": {
2026-06-18T11:17:59.9827826Z           "complete": true,
2026-06-18T11:17:59.9827924Z           "evidence": [
2026-06-18T11:17:59.9828010Z             {
2026-06-18T11:17:59.9828147Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:17:59.9828246Z               "line": 229
2026-06-18T11:17:59.9828332Z             },
2026-06-18T11:17:59.9828428Z             {
2026-06-18T11:17:59.9828552Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-18T11:17:59.9828656Z               "line": 12
2026-06-18T11:17:59.9828743Z             },
2026-06-18T11:17:59.9828833Z             {
2026-06-18T11:17:59.9829038Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:17:59.9829129Z               "line": 16
2026-06-18T11:17:59.9829224Z             },
2026-06-18T11:17:59.9829410Z             {
2026-06-18T11:17:59.9829533Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:17:59.9829620Z               "line": 309
2026-06-18T11:17:59.9829701Z             },
2026-06-18T11:17:59.9829782Z             {
2026-06-18T11:17:59.9829905Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:17:59.9830002Z               "line": 24
2026-06-18T11:17:59.9830087Z             },
2026-06-18T11:17:59.9830177Z             {
2026-06-18T11:17:59.9830284Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:17:59.9830383Z               "line": 262
2026-06-18T11:17:59.9830473Z             },
2026-06-18T11:17:59.9830655Z             {
2026-06-18T11:17:59.9830782Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:17:59.9830867Z               "line": 279
2026-06-18T11:17:59.9830949Z             },
2026-06-18T11:17:59.9831031Z             {
2026-06-18T11:17:59.9831153Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:17:59.9831259Z               "line": 356
2026-06-18T11:17:59.9831345Z             },
2026-06-18T11:17:59.9831440Z             {
2026-06-18T11:17:59.9831550Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:17:59.9831641Z               "line": 658
2026-06-18T11:17:59.9831736Z             },
2026-06-18T11:17:59.9831821Z             {
2026-06-18T11:17:59.9831946Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-18T11:17:59.9832041Z               "line": 15
2026-06-18T11:17:59.9832131Z             },
2026-06-18T11:17:59.9832213Z             {
2026-06-18T11:17:59.9832327Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:17:59.9832426Z               "line": 229
2026-06-18T11:17:59.9832519Z             },
2026-06-18T11:17:59.9832599Z             {
2026-06-18T11:17:59.9832703Z               "path": "crates/spt/src/api/live.rs",
2026-06-18T11:17:59.9832804Z               "line": 13
2026-06-18T11:17:59.9832886Z             },
2026-06-18T11:17:59.9832989Z             {
2026-06-18T11:17:59.9833098Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:17:59.9833193Z               "line": 358
2026-06-18T11:17:59.9833279Z             },
2026-06-18T11:17:59.9833363Z             {
2026-06-18T11:17:59.9833487Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:17:59.9833568Z               "line": 463
2026-06-18T11:17:59.9833658Z             }
2026-06-18T11:17:59.9833744Z           ]
2026-06-18T11:17:59.9833825Z         },
2026-06-18T11:17:59.9833921Z         "int": {
2026-06-18T11:17:59.9834011Z           "complete": true,
2026-06-18T11:17:59.9834097Z           "evidence": [
2026-06-18T11:17:59.9834184Z             {
2026-06-18T11:17:59.9834364Z               "path": "crates/spt-daemon/tests/daemon_lifecycle_real_brain.rs",
2026-06-18T11:17:59.9834460Z               "line": 2
2026-06-18T11:17:59.9834545Z             },
2026-06-18T11:17:59.9834631Z             {
2026-06-18T11:17:59.9834789Z               "path": "crates/spt-daemon/tests/daemon_lifecycle_real_brain.rs",
2026-06-18T11:17:59.9834893Z               "line": 16
2026-06-18T11:17:59.9834984Z             },
2026-06-18T11:17:59.9835076Z             {
2026-06-18T11:17:59.9835227Z               "path": "crates/spt/tests/live_bind_firsthost_e2e.rs",
2026-06-18T11:17:59.9835322Z               "line": 12
2026-06-18T11:17:59.9835424Z             },
2026-06-18T11:17:59.9835513Z             {
2026-06-18T11:17:59.9835647Z               "path": "crates/spt/tests/live_firsthost_e2e.rs",
2026-06-18T11:17:59.9835739Z               "line": 12
2026-06-18T11:17:59.9835833Z             },
2026-06-18T11:17:59.9835932Z             {
2026-06-18T11:17:59.9836075Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-18T11:17:59.9836173Z               "line": 44
2026-06-18T11:17:59.9836263Z             }
2026-06-18T11:17:59.9836349Z           ]
2026-06-18T11:17:59.9836436Z         },
2026-06-18T11:17:59.9836526Z         "unit": {
2026-06-18T11:17:59.9836713Z           "complete": true,
2026-06-18T11:17:59.9836817Z           "evidence": [
2026-06-18T11:17:59.9836902Z             {
2026-06-18T11:17:59.9837027Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-18T11:17:59.9837127Z               "line": 285
2026-06-18T11:17:59.9837212Z             },
2026-06-18T11:17:59.9837308Z             {
2026-06-18T11:17:59.9837427Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-18T11:17:59.9837517Z               "line": 293
2026-06-18T11:17:59.9837598Z             },
2026-06-18T11:17:59.9837681Z             {
2026-06-18T11:17:59.9837803Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-18T11:17:59.9837972Z               "line": 309
2026-06-18T11:17:59.9838052Z             },
2026-06-18T11:17:59.9838147Z             {
2026-06-18T11:17:59.9838253Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-18T11:17:59.9838348Z               "line": 317
2026-06-18T11:17:59.9838432Z             },
2026-06-18T11:17:59.9838536Z             {
2026-06-18T11:17:59.9838651Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:17:59.9838749Z               "line": 659
2026-06-18T11:17:59.9838844Z             },
2026-06-18T11:17:59.9838925Z             {
2026-06-18T11:17:59.9839145Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:17:59.9839235Z               "line": 729
2026-06-18T11:17:59.9839332Z             },
2026-06-18T11:17:59.9839440Z             {
2026-06-18T11:17:59.9839565Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:17:59.9839670Z               "line": 1139
2026-06-18T11:17:59.9839750Z             },
2026-06-18T11:17:59.9839846Z             {
2026-06-18T11:17:59.9839965Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:17:59.9840061Z               "line": 1176
2026-06-18T11:17:59.9840141Z             },
2026-06-18T11:17:59.9840229Z             {
2026-06-18T11:17:59.9840342Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:17:59.9840442Z               "line": 1199
2026-06-18T11:17:59.9840534Z             },
2026-06-18T11:17:59.9840618Z             {
2026-06-18T11:17:59.9840747Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:17:59.9840839Z               "line": 1228
2026-06-18T11:17:59.9840919Z             },
2026-06-18T11:17:59.9841014Z             {
2026-06-18T11:17:59.9841129Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:17:59.9841230Z               "line": 1276
2026-06-18T11:17:59.9841314Z             },
2026-06-18T11:17:59.9841403Z             {
2026-06-18T11:17:59.9841528Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:17:59.9841629Z               "line": 1319
2026-06-18T11:17:59.9841723Z             },
2026-06-18T11:17:59.9841800Z             {
2026-06-18T11:17:59.9841929Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-18T11:17:59.9842014Z               "line": 106
2026-06-18T11:17:59.9842100Z             },
2026-06-18T11:17:59.9842187Z             {
2026-06-18T11:17:59.9842305Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-18T11:17:59.9842406Z               "line": 132
2026-06-18T11:17:59.9842487Z             },
2026-06-18T11:17:59.9842586Z             {
2026-06-18T11:17:59.9842696Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:17:59.9842797Z               "line": 504
2026-06-18T11:17:59.9842887Z             }
2026-06-18T11:17:59.9842973Z           ]
2026-06-18T11:17:59.9843059Z         }
2026-06-18T11:17:59.9843141Z       }
2026-06-18T11:17:59.9843230Z     },
2026-06-18T11:17:59.9843311Z     {
2026-06-18T11:17:59.9843403Z       "id": "REQ-DAEMON-2",
2026-06-18T11:17:59.9843559Z       "title": "Broker/brain split for seamless self-update",
2026-06-18T11:17:59.9843663Z       "requiredStages": [
2026-06-18T11:17:59.9843749Z         "impl",
2026-06-18T11:17:59.9898087Z         "unit",
2026-06-18T11:17:59.9898269Z         "int"
2026-06-18T11:17:59.9898364Z       ],
2026-06-18T11:17:59.9898795Z       "stages": {
2026-06-18T11:17:59.9898879Z         "doc": {
2026-06-18T11:17:59.9899066Z           "complete": true,
2026-06-18T11:17:59.9899166Z           "evidence": [
2026-06-18T11:17:59.9899264Z             {
2026-06-18T11:17:59.9899412Z               "path": "docs/TWO-HOST-RUNBOOK.md",
2026-06-18T11:17:59.9899515Z               "line": 250
2026-06-18T11:17:59.9899605Z             }
2026-06-18T11:17:59.9899681Z           ]
2026-06-18T11:17:59.9899763Z         },
2026-06-18T11:17:59.9899844Z         "impl": {
2026-06-18T11:17:59.9899948Z           "complete": true,
2026-06-18T11:17:59.9900039Z           "evidence": [
2026-06-18T11:17:59.9900249Z             {
2026-06-18T11:17:59.9900374Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T11:17:59.9900459Z               "line": 23
2026-06-18T11:17:59.9900549Z             },
2026-06-18T11:17:59.9900630Z             {
2026-06-18T11:17:59.9900750Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T11:17:59.9900840Z               "line": 796
2026-06-18T11:17:59.9900925Z             },
2026-06-18T11:17:59.9901013Z             {
2026-06-18T11:17:59.9901126Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T11:17:59.9901226Z               "line": 821
2026-06-18T11:17:59.9901308Z             },
2026-06-18T11:17:59.9901389Z             {
2026-06-18T11:17:59.9901497Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T11:17:59.9901594Z               "line": 1057
2026-06-18T11:17:59.9901680Z             },
2026-06-18T11:17:59.9901751Z             {
2026-06-18T11:17:59.9901869Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:17:59.9901955Z               "line": 32
2026-06-18T11:17:59.9902036Z             },
2026-06-18T11:17:59.9902120Z             {
2026-06-18T11:17:59.9902238Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:17:59.9902329Z               "line": 550
2026-06-18T11:17:59.9902416Z             },
2026-06-18T11:17:59.9902510Z             {
2026-06-18T11:17:59.9902616Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:17:59.9902711Z               "line": 1130
2026-06-18T11:17:59.9902787Z             },
2026-06-18T11:17:59.9902873Z             {
2026-06-18T11:17:59.9902988Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:17:59.9903078Z               "line": 1417
2026-06-18T11:17:59.9903168Z             },
2026-06-18T11:17:59.9903251Z             {
2026-06-18T11:17:59.9903364Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-18T11:17:59.9903454Z               "line": 11
2026-06-18T11:17:59.9903535Z             },
2026-06-18T11:17:59.9903622Z             {
2026-06-18T11:17:59.9903741Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:17:59.9903826Z               "line": 148
2026-06-18T11:17:59.9903904Z             },
2026-06-18T11:17:59.9903989Z             {
2026-06-18T11:17:59.9904107Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:17:59.9904195Z               "line": 338
2026-06-18T11:17:59.9904280Z             },
2026-06-18T11:17:59.9904365Z             {
2026-06-18T11:17:59.9904476Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-18T11:17:59.9904552Z               "line": 13
2026-06-18T11:17:59.9904633Z             },
2026-06-18T11:17:59.9904717Z             {
2026-06-18T11:17:59.9904836Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:17:59.9904932Z               "line": 27
2026-06-18T11:17:59.9905018Z             },
2026-06-18T11:17:59.9905103Z             {
2026-06-18T11:17:59.9905219Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:17:59.9905319Z               "line": 147
2026-06-18T11:17:59.9905408Z             },
2026-06-18T11:17:59.9905490Z             {
2026-06-18T11:17:59.9905609Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:17:59.9905689Z               "line": 632
2026-06-18T11:17:59.9905780Z             },
2026-06-18T11:17:59.9905972Z             {
2026-06-18T11:17:59.9906090Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:17:59.9906187Z               "line": 853
2026-06-18T11:17:59.9906271Z             },
2026-06-18T11:17:59.9906362Z             {
2026-06-18T11:17:59.9906478Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:17:59.9906576Z               "line": 1000
2026-06-18T11:17:59.9906662Z             },
2026-06-18T11:17:59.9906749Z             {
2026-06-18T11:17:59.9906868Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:17:59.9906957Z               "line": 1089
2026-06-18T11:17:59.9907042Z             },
2026-06-18T11:17:59.9907204Z             {
2026-06-18T11:17:59.9907327Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:17:59.9907408Z               "line": 1211
2026-06-18T11:17:59.9907499Z             },
2026-06-18T11:17:59.9907589Z             {
2026-06-18T11:17:59.9907732Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-18T11:17:59.9907857Z               "line": 10
2026-06-18T11:17:59.9907941Z             }
2026-06-18T11:17:59.9908028Z           ]
2026-06-18T11:17:59.9908114Z         },
2026-06-18T11:17:59.9908204Z         "int": {
2026-06-18T11:17:59.9908308Z           "complete": true,
2026-06-18T11:17:59.9908396Z           "evidence": [
2026-06-18T11:17:59.9908481Z             {
2026-06-18T11:17:59.9908595Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-18T11:17:59.9908681Z               "line": 17
2026-06-18T11:17:59.9908772Z             },
2026-06-18T11:17:59.9908857Z             {
2026-06-18T11:17:59.9909063Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-18T11:17:59.9909157Z               "line": 90
2026-06-18T11:17:59.9909243Z             },
2026-06-18T11:17:59.9909326Z             {
2026-06-18T11:17:59.9909462Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-18T11:17:59.9909554Z               "line": 110
2026-06-18T11:17:59.9909635Z             },
2026-06-18T11:17:59.9909726Z             {
2026-06-18T11:17:59.9909844Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-18T11:17:59.9909939Z               "line": 186
2026-06-18T11:17:59.9910020Z             },
2026-06-18T11:17:59.9910103Z             {
2026-06-18T11:17:59.9910222Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-18T11:17:59.9910304Z               "line": 309
2026-06-18T11:17:59.9910395Z             },
2026-06-18T11:17:59.9910475Z             {
2026-06-18T11:17:59.9910590Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-18T11:17:59.9910671Z               "line": 128
2026-06-18T11:17:59.9910771Z             },
2026-06-18T11:17:59.9910861Z             {
2026-06-18T11:17:59.9910981Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-18T11:17:59.9911076Z               "line": 59
2026-06-18T11:17:59.9911157Z             }
2026-06-18T11:17:59.9911233Z           ]
2026-06-18T11:17:59.9911315Z         },
2026-06-18T11:17:59.9911396Z         "unit": {
2026-06-18T11:17:59.9911495Z           "complete": true,
2026-06-18T11:17:59.9911583Z           "evidence": [
2026-06-18T11:17:59.9911672Z             {
2026-06-18T11:17:59.9911786Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-18T11:17:59.9911883Z               "line": 62
2026-06-18T11:17:59.9911968Z             },
2026-06-18T11:17:59.9912063Z             {
2026-06-18T11:17:59.9912183Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-18T11:17:59.9912273Z               "line": 76
2026-06-18T11:17:59.9912353Z             },
2026-06-18T11:17:59.9912438Z             {
2026-06-18T11:17:59.9912553Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-18T11:17:59.9912642Z               "line": 88
2026-06-18T11:17:59.9912736Z             },
2026-06-18T11:17:59.9912827Z             {
2026-06-18T11:17:59.9912938Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-18T11:17:59.9913042Z               "line": 294
2026-06-18T11:17:59.9913233Z             },
2026-06-18T11:17:59.9913314Z             {
2026-06-18T11:17:59.9913423Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-18T11:17:59.9913510Z               "line": 825
2026-06-18T11:17:59.9913600Z             },
2026-06-18T11:17:59.9913681Z             {
2026-06-18T11:17:59.9913796Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-18T11:17:59.9913886Z               "line": 833
2026-06-18T11:17:59.9913967Z             },
2026-06-18T11:17:59.9914038Z             {
2026-06-18T11:17:59.9914154Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-18T11:17:59.9914253Z               "line": 850
2026-06-18T11:17:59.9914430Z             },
2026-06-18T11:17:59.9914516Z             {
2026-06-18T11:17:59.9914620Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-18T11:17:59.9914716Z               "line": 926
2026-06-18T11:17:59.9914798Z             },
2026-06-18T11:17:59.9914887Z             {
2026-06-18T11:17:59.9915011Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:17:59.9915103Z               "line": 1282
2026-06-18T11:17:59.9915183Z             },
2026-06-18T11:17:59.9915268Z             {
2026-06-18T11:17:59.9915387Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:17:59.9915488Z               "line": 1294
2026-06-18T11:17:59.9915573Z             },
2026-06-18T11:17:59.9915663Z             {
2026-06-18T11:17:59.9915774Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-18T11:17:59.9915869Z               "line": 110
2026-06-18T11:17:59.9915954Z             },
2026-06-18T11:17:59.9916046Z             {
2026-06-18T11:17:59.9916174Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-18T11:17:59.9916264Z               "line": 144
2026-06-18T11:17:59.9916350Z             }
2026-06-18T11:17:59.9916432Z           ]
2026-06-18T11:17:59.9916512Z         }
2026-06-18T11:17:59.9916592Z       }
2026-06-18T11:17:59.9916680Z     },
2026-06-18T11:17:59.9916771Z     {
2026-06-18T11:17:59.9916875Z       "id": "REQ-DAEMON-3",
2026-06-18T11:17:59.9917038Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-18T11:17:59.9917137Z       "requiredStages": [
2026-06-18T11:17:59.9917227Z         "impl",
2026-06-18T11:17:59.9917309Z         "unit",
2026-06-18T11:17:59.9917400Z         "int"
2026-06-18T11:17:59.9917489Z       ],
2026-06-18T11:17:59.9917574Z       "stages": {
2026-06-18T11:17:59.9917670Z         "doc": {
2026-06-18T11:17:59.9917773Z           "complete": false,
2026-06-18T11:17:59.9917863Z           "evidence": []
2026-06-18T11:17:59.9917949Z         },
2026-06-18T11:17:59.9918040Z         "impl": {
2026-06-18T11:17:59.9918139Z           "complete": true,
2026-06-18T11:17:59.9918230Z           "evidence": [
2026-06-18T11:17:59.9918316Z             {
2026-06-18T11:17:59.9918440Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:17:59.9918535Z               "line": 14
2026-06-18T11:17:59.9918612Z             },
2026-06-18T11:17:59.9918717Z             {
2026-06-18T11:17:59.9918835Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-18T11:17:59.9918922Z               "line": 11
2026-06-18T11:17:59.9919117Z             },
2026-06-18T11:17:59.9919198Z             {
2026-06-18T11:17:59.9919314Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T11:17:59.9919399Z               "line": 305
2026-06-18T11:17:59.9919484Z             },
2026-06-18T11:17:59.9919566Z             {
2026-06-18T11:17:59.9919670Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9919765Z               "line": 1844
2026-06-18T11:17:59.9919852Z             },
2026-06-18T11:17:59.9919943Z             {
2026-06-18T11:17:59.9920051Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9920133Z               "line": 4093
2026-06-18T11:17:59.9920215Z             },
2026-06-18T11:17:59.9920300Z             {
2026-06-18T11:17:59.9920408Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9920489Z               "line": 4114
2026-06-18T11:17:59.9920664Z             }
2026-06-18T11:17:59.9920749Z           ]
2026-06-18T11:17:59.9920835Z         },
2026-06-18T11:17:59.9920931Z         "int": {
2026-06-18T11:17:59.9921016Z           "complete": true,
2026-06-18T11:17:59.9921101Z           "evidence": [
2026-06-18T11:17:59.9921189Z             {
2026-06-18T11:17:59.9921312Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-18T11:17:59.9921397Z               "line": 49
2026-06-18T11:17:59.9921489Z             },
2026-06-18T11:17:59.9921574Z             {
2026-06-18T11:17:59.9921688Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-18T11:17:59.9921784Z               "line": 487
2026-06-18T11:17:59.9921979Z             }
2026-06-18T11:17:59.9922070Z           ]
2026-06-18T11:17:59.9922148Z         },
2026-06-18T11:17:59.9922237Z         "unit": {
2026-06-18T11:17:59.9922337Z           "complete": true,
2026-06-18T11:17:59.9922424Z           "evidence": [
2026-06-18T11:17:59.9922509Z             {
2026-06-18T11:17:59.9922637Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:17:59.9922724Z               "line": 831
2026-06-18T11:17:59.9922810Z             },
2026-06-18T11:17:59.9922904Z             {
2026-06-18T11:17:59.9923012Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9923099Z               "line": 10468
2026-06-18T11:17:59.9923179Z             }
2026-06-18T11:17:59.9923259Z           ]
2026-06-18T11:17:59.9923344Z         }
2026-06-18T11:17:59.9923426Z       }
2026-06-18T11:17:59.9923508Z     },
2026-06-18T11:17:59.9923602Z     {
2026-06-18T11:17:59.9923693Z       "id": "REQ-DAEMON-4",
2026-06-18T11:17:59.9923822Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-18T11:17:59.9923916Z       "requiredStages": [
2026-06-18T11:17:59.9924007Z         "impl",
2026-06-18T11:17:59.9924094Z         "unit",
2026-06-18T11:17:59.9924179Z         "int"
2026-06-18T11:17:59.9924269Z       ],
2026-06-18T11:17:59.9924351Z       "stages": {
2026-06-18T11:17:59.9924437Z         "doc": {
2026-06-18T11:17:59.9924537Z           "complete": false,
2026-06-18T11:17:59.9924632Z           "evidence": []
2026-06-18T11:17:59.9924714Z         },
2026-06-18T11:17:59.9924808Z         "impl": {
2026-06-18T11:17:59.9924904Z           "complete": true,
2026-06-18T11:17:59.9924985Z           "evidence": [
2026-06-18T11:17:59.9925071Z             {
2026-06-18T11:17:59.9925190Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:17:59.9925286Z               "line": 464
2026-06-18T11:17:59.9925367Z             },
2026-06-18T11:17:59.9925452Z             {
2026-06-18T11:17:59.9925576Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:17:59.9925659Z               "line": 529
2026-06-18T11:17:59.9925748Z             },
2026-06-18T11:17:59.9925828Z             {
2026-06-18T11:17:59.9925951Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:17:59.9926029Z               "line": 551
2026-06-18T11:17:59.9926133Z             }
2026-06-18T11:17:59.9926223Z           ]
2026-06-18T11:17:59.9926305Z         },
2026-06-18T11:17:59.9926395Z         "int": {
2026-06-18T11:17:59.9926490Z           "complete": true,
2026-06-18T11:17:59.9926586Z           "evidence": [
2026-06-18T11:17:59.9926673Z             {
2026-06-18T11:17:59.9926805Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-18T11:17:59.9926900Z               "line": 42
2026-06-18T11:17:59.9926987Z             }
2026-06-18T11:17:59.9927077Z           ]
2026-06-18T11:17:59.9927162Z         },
2026-06-18T11:17:59.9927250Z         "unit": {
2026-06-18T11:17:59.9927340Z           "complete": true,
2026-06-18T11:17:59.9927440Z           "evidence": [
2026-06-18T11:17:59.9927521Z             {
2026-06-18T11:17:59.9927640Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-18T11:17:59.9927744Z               "line": 428
2026-06-18T11:17:59.9927831Z             },
2026-06-18T11:17:59.9927913Z             {
2026-06-18T11:17:59.9928035Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:17:59.9928201Z               "line": 957
2026-06-18T11:17:59.9928296Z             },
2026-06-18T11:17:59.9928380Z             {
2026-06-18T11:17:59.9928504Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:17:59.9928600Z               "line": 1027
2026-06-18T11:17:59.9928681Z             },
2026-06-18T11:17:59.9928761Z             {
2026-06-18T11:17:59.9928881Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:17:59.9929047Z               "line": 1057
2026-06-18T11:17:59.9929128Z             },
2026-06-18T11:17:59.9929220Z             {
2026-06-18T11:17:59.9929443Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:17:59.9929530Z               "line": 1090
2026-06-18T11:17:59.9929615Z             }
2026-06-18T11:17:59.9929705Z           ]
2026-06-18T11:17:59.9929787Z         }
2026-06-18T11:17:59.9929869Z       }
2026-06-18T11:17:59.9929959Z     },
2026-06-18T11:17:59.9930049Z     {
2026-06-18T11:17:59.9930155Z       "id": "REQ-DAEMON-5",
2026-06-18T11:17:59.9931595Z       "title": "Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status (decision 23 render legs in REQ-CLI-2/REQ-SUBNET-8); the daemon supervises the pump task — a panic is caught, logged loudly, and the pump restarts with capped backoff (≤5 min), so a 5.9-class death self-heals visibly instead of silently halving the daemon (M8 decision 23; field motivation: hfenduleam 2026-06-07 half-death)",
2026-06-18T11:17:59.9931705Z       "requiredStages": [
2026-06-18T11:17:59.9931796Z         "impl",
2026-06-18T11:17:59.9931877Z         "unit"
2026-06-18T11:17:59.9931972Z       ],
2026-06-18T11:17:59.9932054Z       "stages": {
2026-06-18T11:17:59.9932144Z         "doc": {
2026-06-18T11:17:59.9932253Z           "complete": false,
2026-06-18T11:17:59.9932344Z           "evidence": []
2026-06-18T11:17:59.9932440Z         },
2026-06-18T11:17:59.9932526Z         "impl": {
2026-06-18T11:17:59.9932625Z           "complete": true,
2026-06-18T11:17:59.9932712Z           "evidence": [
2026-06-18T11:17:59.9932801Z             {
2026-06-18T11:17:59.9932940Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:17:59.9933022Z               "line": 476
2026-06-18T11:17:59.9933121Z             },
2026-06-18T11:17:59.9933202Z             {
2026-06-18T11:17:59.9933327Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:17:59.9933422Z               "line": 769
2026-06-18T11:17:59.9933497Z             },
2026-06-18T11:17:59.9933587Z             {
2026-06-18T11:17:59.9933707Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:17:59.9933814Z               "line": 782
2026-06-18T11:17:59.9933899Z             },
2026-06-18T11:17:59.9933981Z             {
2026-06-18T11:17:59.9934101Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:17:59.9934186Z               "line": 800
2026-06-18T11:17:59.9934281Z             },
2026-06-18T11:17:59.9934373Z             {
2026-06-18T11:17:59.9934538Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:17:59.9934654Z               "line": 841
2026-06-18T11:17:59.9934796Z             }
2026-06-18T11:17:59.9934978Z           ]
2026-06-18T11:17:59.9935087Z         },
2026-06-18T11:17:59.9935307Z         "int": {
2026-06-18T11:17:59.9935483Z           "complete": false,
2026-06-18T11:17:59.9935631Z           "evidence": []
2026-06-18T11:17:59.9935764Z         },
2026-06-18T11:17:59.9935894Z         "unit": {
2026-06-18T11:17:59.9936055Z           "complete": true,
2026-06-18T11:17:59.9936228Z           "evidence": [
2026-06-18T11:17:59.9936350Z             {
2026-06-18T11:17:59.9936551Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:17:59.9936693Z               "line": 1189
2026-06-18T11:17:59.9936856Z             },
2026-06-18T11:17:59.9937022Z             {
2026-06-18T11:17:59.9937176Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:17:59.9937461Z               "line": 1213
2026-06-18T11:17:59.9937595Z             },
2026-06-18T11:17:59.9937776Z             {
2026-06-18T11:17:59.9937990Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:17:59.9938105Z               "line": 1239
2026-06-18T11:17:59.9938248Z             }
2026-06-18T11:17:59.9938357Z           ]
2026-06-18T11:17:59.9938520Z         }
2026-06-18T11:17:59.9938690Z       }
2026-06-18T11:17:59.9938804Z     },
2026-06-18T11:17:59.9939016Z     {
2026-06-18T11:17:59.9939146Z       "id": "REQ-DAEMON-6",
2026-06-18T11:17:59.9941191Z       "title": "Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.",
2026-06-18T11:17:59.9941514Z       "requiredStages": [
2026-06-18T11:17:59.9941638Z         "impl",
2026-06-18T11:17:59.9941784Z         "unit"
2026-06-18T11:17:59.9941898Z       ],
2026-06-18T11:17:59.9942080Z       "stages": {
2026-06-18T11:17:59.9942231Z         "doc": {
2026-06-18T11:17:59.9942361Z           "complete": false,
2026-06-18T11:17:59.9942503Z           "evidence": []
2026-06-18T11:17:59.9942614Z         },
2026-06-18T11:17:59.9942822Z         "impl": {
2026-06-18T11:17:59.9942962Z           "complete": true,
2026-06-18T11:17:59.9943118Z           "evidence": [
2026-06-18T11:17:59.9943272Z             {
2026-06-18T11:17:59.9943424Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:17:59.9943611Z               "line": 490
2026-06-18T11:17:59.9943743Z             },
2026-06-18T11:17:59.9943892Z             {
2026-06-18T11:17:59.9944067Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:17:59.9944200Z               "line": 521
2026-06-18T11:17:59.9944369Z             },
2026-06-18T11:17:59.9944498Z             {
2026-06-18T11:17:59.9944679Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-18T11:17:59.9944803Z               "line": 55
2026-06-18T11:17:59.9944961Z             },
2026-06-18T11:17:59.9945132Z             {
2026-06-18T11:17:59.9945285Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-18T11:17:59.9945437Z               "line": 70
2026-06-18T11:17:59.9945562Z             },
2026-06-18T11:17:59.9945719Z             {
2026-06-18T11:17:59.9945910Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9946053Z               "line": 1898
2026-06-18T11:17:59.9946201Z             },
2026-06-18T11:17:59.9946315Z             {
2026-06-18T11:17:59.9946497Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9946615Z               "line": 1924
2026-06-18T11:17:59.9946812Z             }
2026-06-18T11:17:59.9946958Z           ]
2026-06-18T11:17:59.9947076Z         },
2026-06-18T11:17:59.9947230Z         "int": {
2026-06-18T11:17:59.9947338Z           "complete": false,
2026-06-18T11:17:59.9947545Z           "evidence": []
2026-06-18T11:17:59.9947662Z         },
2026-06-18T11:17:59.9947845Z         "unit": {
2026-06-18T11:17:59.9948002Z           "complete": true,
2026-06-18T11:17:59.9948107Z           "evidence": [
2026-06-18T11:17:59.9948302Z             {
2026-06-18T11:17:59.9948451Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-18T11:17:59.9948626Z               "line": 288
2026-06-18T11:17:59.9948737Z             },
2026-06-18T11:17:59.9948874Z             {
2026-06-18T11:17:59.9949170Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-18T11:17:59.9949288Z               "line": 299
2026-06-18T11:17:59.9949463Z             },
2026-06-18T11:17:59.9949691Z             {
2026-06-18T11:17:59.9949862Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-18T11:17:59.9950078Z               "line": 325
2026-06-18T11:17:59.9950186Z             },
2026-06-18T11:17:59.9950336Z             {
2026-06-18T11:17:59.9950473Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-18T11:17:59.9950608Z               "line": 351
2026-06-18T11:17:59.9950755Z             }
2026-06-18T11:17:59.9950927Z           ]
2026-06-18T11:17:59.9951079Z         }
2026-06-18T11:17:59.9951178Z       }
2026-06-18T11:17:59.9951313Z     },
2026-06-18T11:17:59.9951465Z     {
2026-06-18T11:17:59.9951647Z       "id": "REQ-DAEMON-7",
2026-06-18T11:17:59.9953140Z       "title": "`daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).",
2026-06-18T11:17:59.9953313Z       "requiredStages": [
2026-06-18T11:17:59.9953459Z         "impl",
2026-06-18T11:17:59.9953607Z         "unit"
2026-06-18T11:17:59.9953765Z       ],
2026-06-18T11:17:59.9953917Z       "stages": {
2026-06-18T11:17:59.9954031Z         "doc": {
2026-06-18T11:17:59.9954185Z           "complete": false,
2026-06-18T11:17:59.9954346Z           "evidence": []
2026-06-18T11:17:59.9954510Z         },
2026-06-18T11:17:59.9954622Z         "impl": {
2026-06-18T11:17:59.9954770Z           "complete": true,
2026-06-18T11:17:59.9954934Z           "evidence": [
2026-06-18T11:17:59.9955087Z             {
2026-06-18T11:17:59.9955287Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:17:59.9955406Z               "line": 540
2026-06-18T11:17:59.9955559Z             },
2026-06-18T11:17:59.9955668Z             {
2026-06-18T11:17:59.9955893Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T11:17:59.9956060Z               "line": 601
2026-06-18T11:17:59.9956174Z             },
2026-06-18T11:17:59.9956336Z             {
2026-06-18T11:17:59.9956484Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-18T11:17:59.9956671Z               "line": 89
2026-06-18T11:17:59.9956841Z             },
2026-06-18T11:17:59.9956956Z             {
2026-06-18T11:17:59.9957141Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9957266Z               "line": 1845
2026-06-18T11:17:59.9957438Z             }
2026-06-18T11:17:59.9957570Z           ]
2026-06-18T11:17:59.9957728Z         },
2026-06-18T11:17:59.9957889Z         "int": {
2026-06-18T11:17:59.9958019Z           "complete": false,
2026-06-18T11:17:59.9958199Z           "evidence": []
2026-06-18T11:17:59.9958320Z         },
2026-06-18T11:17:59.9958480Z         "unit": {
2026-06-18T11:17:59.9958600Z           "complete": true,
2026-06-18T11:17:59.9958758Z           "evidence": [
2026-06-18T11:17:59.9958930Z             {
2026-06-18T11:17:59.9959473Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-18T11:17:59.9959640Z               "line": 314
2026-06-18T11:17:59.9959753Z             },
2026-06-18T11:17:59.9959901Z             {
2026-06-18T11:17:59.9960098Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9960233Z               "line": 7924
2026-06-18T11:17:59.9960390Z             }
2026-06-18T11:17:59.9960504Z           ]
2026-06-18T11:17:59.9960652Z         }
2026-06-18T11:17:59.9960756Z       }
2026-06-18T11:17:59.9960948Z     },
2026-06-18T11:17:59.9961109Z     {
2026-06-18T11:17:59.9961239Z       "id": "REQ-DAEMON-8",
2026-06-18T11:17:59.9962249Z       "title": "Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.",
2026-06-18T11:17:59.9962484Z       "requiredStages": [
2026-06-18T11:17:59.9962701Z         "impl",
2026-06-18T11:17:59.9962853Z         "unit"
2026-06-18T11:17:59.9962975Z       ],
2026-06-18T11:17:59.9963123Z       "stages": {
2026-06-18T11:17:59.9963224Z         "doc": {
2026-06-18T11:17:59.9963448Z           "complete": false,
2026-06-18T11:17:59.9963562Z           "evidence": []
2026-06-18T11:17:59.9963705Z         },
2026-06-18T11:17:59.9963858Z         "impl": {
2026-06-18T11:17:59.9963957Z           "complete": true,
2026-06-18T11:17:59.9964167Z           "evidence": [
2026-06-18T11:17:59.9964392Z             {
2026-06-18T11:17:59.9964577Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:17:59.9964745Z               "line": 440
2026-06-18T11:17:59.9964848Z             },
2026-06-18T11:17:59.9965041Z             {
2026-06-18T11:17:59.9965191Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-18T11:17:59.9965349Z               "line": 56
2026-06-18T11:17:59.9965476Z             }
2026-06-18T11:17:59.9965603Z           ]
2026-06-18T11:17:59.9965796Z         },
2026-06-18T11:17:59.9965909Z         "int": {
2026-06-18T11:17:59.9966067Z           "complete": false,
2026-06-18T11:17:59.9966200Z           "evidence": []
2026-06-18T11:17:59.9966335Z         },
2026-06-18T11:17:59.9966486Z         "unit": {
2026-06-18T11:17:59.9966654Z           "complete": true,
2026-06-18T11:17:59.9966819Z           "evidence": [
2026-06-18T11:17:59.9966935Z             {
2026-06-18T11:17:59.9967097Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-18T11:17:59.9967260Z               "line": 288
2026-06-18T11:17:59.9967421Z             },
2026-06-18T11:17:59.9967579Z             {
2026-06-18T11:17:59.9967720Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-18T11:17:59.9967875Z               "line": 325
2026-06-18T11:17:59.9968021Z             }
2026-06-18T11:17:59.9968178Z           ]
2026-06-18T11:17:59.9968313Z         }
2026-06-18T11:17:59.9968454Z       }
2026-06-18T11:17:59.9968584Z     },
2026-06-18T11:17:59.9968735Z     {
2026-06-18T11:17:59.9968899Z       "id": "REQ-DAEMON-9",
2026-06-18T11:17:59.9975185Z       "title": "Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.",
2026-06-18T11:17:59.9975399Z       "requiredStages": [
2026-06-18T11:17:59.9975539Z         "impl",
2026-06-18T11:17:59.9975756Z         "unit"
2026-06-18T11:17:59.9975890Z       ],
2026-06-18T11:17:59.9976036Z       "stages": {
2026-06-18T11:17:59.9976154Z         "doc": {
2026-06-18T11:17:59.9976293Z           "complete": false,
2026-06-18T11:17:59.9976445Z           "evidence": []
2026-06-18T11:17:59.9976622Z         },
2026-06-18T11:17:59.9976764Z         "impl": {
2026-06-18T11:17:59.9976895Z           "complete": true,
2026-06-18T11:17:59.9977028Z           "evidence": [
2026-06-18T11:17:59.9977180Z             {
2026-06-18T11:17:59.9977404Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:17:59.9977562Z               "line": 276
2026-06-18T11:17:59.9977676Z             },
2026-06-18T11:17:59.9977824Z             {
2026-06-18T11:17:59.9978009Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:17:59.9978201Z               "line": 601
2026-06-18T11:17:59.9978454Z             },
2026-06-18T11:17:59.9978600Z             {
2026-06-18T11:17:59.9978776Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:17:59.9978929Z               "line": 192
2026-06-18T11:17:59.9979177Z             },
2026-06-18T11:17:59.9979291Z             {
2026-06-18T11:17:59.9979459Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:17:59.9979587Z               "line": 339
2026-06-18T11:17:59.9979759Z             },
2026-06-18T11:17:59.9979915Z             {
2026-06-18T11:17:59.9980060Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:17:59.9980207Z               "line": 376
2026-06-18T11:17:59.9980446Z             },
2026-06-18T11:17:59.9980617Z             {
2026-06-18T11:17:59.9980798Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9980925Z               "line": 1953
2026-06-18T11:17:59.9981083Z             }
2026-06-18T11:17:59.9981190Z           ]
2026-06-18T11:17:59.9981358Z         },
2026-06-18T11:17:59.9981491Z         "int": {
2026-06-18T11:17:59.9981634Z           "complete": false,
2026-06-18T11:17:59.9981801Z           "evidence": []
2026-06-18T11:17:59.9981914Z         },
2026-06-18T11:17:59.9982082Z         "unit": {
2026-06-18T11:17:59.9982206Z           "complete": true,
2026-06-18T11:17:59.9982373Z           "evidence": [
2026-06-18T11:17:59.9982482Z             {
2026-06-18T11:17:59.9982660Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:17:59.9982826Z               "line": 787
2026-06-18T11:17:59.9982951Z             },
2026-06-18T11:17:59.9983107Z             {
2026-06-18T11:17:59.9983242Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:17:59.9983402Z               "line": 10333
2026-06-18T11:17:59.9983561Z             }
2026-06-18T11:17:59.9983684Z           ]
2026-06-18T11:17:59.9983840Z         }
2026-06-18T11:17:59.9983950Z       }
2026-06-18T11:17:59.9984096Z     },
2026-06-18T11:17:59.9984191Z     {
2026-06-18T11:17:59.9984382Z       "id": "REQ-DOCS-1",
2026-06-18T11:17:59.9984654Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-18T11:17:59.9984781Z       "requiredStages": [
2026-06-18T11:17:59.9984930Z         "doc",
2026-06-18T11:17:59.9985025Z         "impl"
2026-06-18T11:17:59.9985231Z       ],
2026-06-18T11:17:59.9985350Z       "stages": {
2026-06-18T11:17:59.9985494Z         "doc": {
2026-06-18T11:17:59.9985645Z           "complete": true,
2026-06-18T11:17:59.9985750Z           "evidence": [
2026-06-18T11:17:59.9985955Z             {
2026-06-18T11:17:59.9986085Z               "path": "docs-site/src/index.md",
2026-06-18T11:17:59.9986237Z               "line": 50
2026-06-18T11:17:59.9986359Z             }
2026-06-18T11:17:59.9986483Z           ]
2026-06-18T11:17:59.9986695Z         },
2026-06-18T11:17:59.9986810Z         "impl": {
2026-06-18T11:17:59.9986967Z           "complete": true,
2026-06-18T11:17:59.9987082Z           "evidence": [
2026-06-18T11:17:59.9987221Z             {
2026-06-18T11:17:59.9987473Z               "path": ".github/workflows/docs-publish.yml",
2026-06-18T11:17:59.9987583Z               "line": 12
2026-06-18T11:17:59.9987727Z             },
2026-06-18T11:17:59.9987864Z             {
2026-06-18T11:17:59.9988016Z               "path": "crates/xtask/src/main.rs",
2026-06-18T11:17:59.9988203Z               "line": 14
2026-06-18T11:17:59.9988351Z             }
2026-06-18T11:17:59.9988493Z           ]
2026-06-18T11:17:59.9988603Z         },
2026-06-18T11:17:59.9988747Z         "int": {
2026-06-18T11:17:59.9988903Z           "complete": false,
2026-06-18T11:17:59.9989198Z           "evidence": []
2026-06-18T11:17:59.9989317Z         },
2026-06-18T11:17:59.9989471Z         "unit": {
2026-06-18T11:17:59.9989622Z           "complete": false,
2026-06-18T11:17:59.9989790Z           "evidence": []
2026-06-18T11:17:59.9989942Z         }
2026-06-18T11:17:59.9990047Z       }
2026-06-18T11:17:59.9990189Z     },
2026-06-18T11:17:59.9990310Z     {
2026-06-18T11:17:59.9996587Z       "id": "REQ-DOCS-2",
2026-06-18T11:17:59.9996948Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-18T11:17:59.9997053Z       "requiredStages": [
2026-06-18T11:17:59.9997137Z         "doc",
2026-06-18T11:17:59.9997227Z         "int"
2026-06-18T11:17:59.9997303Z       ],
2026-06-18T11:17:59.9997405Z       "stages": {
2026-06-18T11:17:59.9997485Z         "doc": {
2026-06-18T11:17:59.9997570Z           "complete": true,
2026-06-18T11:17:59.9997671Z           "evidence": [
2026-06-18T11:17:59.9997752Z             {
2026-06-18T11:17:59.9997938Z               "path": "docs-site/src/harness-contract/integration-checklist.md",
2026-06-18T11:17:59.9998024Z               "line": 3
2026-06-18T11:17:59.9998213Z             },
2026-06-18T11:17:59.9998306Z             {
2026-06-18T11:17:59.9998443Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-18T11:17:59.9998538Z               "line": 3
2026-06-18T11:17:59.9998616Z             },
2026-06-18T11:17:59.9998701Z             {
2026-06-18T11:17:59.9998834Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-18T11:17:59.9998931Z               "line": 3
2026-06-18T11:17:59.9999082Z             }
2026-06-18T11:17:59.9999168Z           ]
2026-06-18T11:17:59.9999255Z         },
2026-06-18T11:17:59.9999340Z         "impl": {
2026-06-18T11:17:59.9999445Z           "complete": false,
2026-06-18T11:17:59.9999531Z           "evidence": []
2026-06-18T11:17:59.9999612Z         },
2026-06-18T11:17:59.9999697Z         "int": {
2026-06-18T11:17:59.9999787Z           "complete": true,
2026-06-18T11:17:59.9999877Z           "evidence": [
2026-06-18T11:17:59.9999959Z             {
2026-06-18T11:18:00.0000096Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-18T11:18:00.0000177Z               "line": 14
2026-06-18T11:18:00.0000269Z             }
2026-06-18T11:18:00.0000369Z           ]
2026-06-18T11:18:00.0000444Z         },
2026-06-18T11:18:00.0000536Z         "unit": {
2026-06-18T11:18:00.0000631Z           "complete": false,
2026-06-18T11:18:00.0000731Z           "evidence": []
2026-06-18T11:18:00.0000817Z         }
2026-06-18T11:18:00.0000908Z       }
2026-06-18T11:18:00.0000988Z     },
2026-06-18T11:18:00.0001073Z     {
2026-06-18T11:18:00.0001171Z       "id": "REQ-DOCS-3",
2026-06-18T11:18:00.0001422Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-18T11:18:00.0001519Z       "requiredStages": [
2026-06-18T11:18:00.0001608Z         "doc"
2026-06-18T11:18:00.0001699Z       ],
2026-06-18T11:18:00.0001785Z       "stages": {
2026-06-18T11:18:00.0001872Z         "doc": {
2026-06-18T11:18:00.0001970Z           "complete": true,
2026-06-18T11:18:00.0002055Z           "evidence": [
2026-06-18T11:18:00.0002151Z             {
2026-06-18T11:18:00.0002259Z               "path": "docs-site/src/index.md",
2026-06-18T11:18:00.0002358Z               "line": 42
2026-06-18T11:18:00.0002440Z             }
2026-06-18T11:18:00.0002521Z           ]
2026-06-18T11:18:00.0002606Z         },
2026-06-18T11:18:00.0002692Z         "impl": {
2026-06-18T11:18:00.0002792Z           "complete": false,
2026-06-18T11:18:00.0002873Z           "evidence": []
2026-06-18T11:18:00.0002954Z         },
2026-06-18T11:18:00.0003044Z         "int": {
2026-06-18T11:18:00.0003127Z           "complete": false,
2026-06-18T11:18:00.0003227Z           "evidence": []
2026-06-18T11:18:00.0003307Z         },
2026-06-18T11:18:00.0003389Z         "unit": {
2026-06-18T11:18:00.0003475Z           "complete": false,
2026-06-18T11:18:00.0003570Z           "evidence": []
2026-06-18T11:18:00.0003650Z         }
2026-06-18T11:18:00.0003742Z       }
2026-06-18T11:18:00.0003831Z     },
2026-06-18T11:18:00.0003913Z     {
2026-06-18T11:18:00.0004008Z       "id": "REQ-DOCS-4",
2026-06-18T11:18:00.0004203Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-18T11:18:00.0004309Z       "requiredStages": [
2026-06-18T11:18:00.0004405Z         "doc",
2026-06-18T11:18:00.0004489Z         "impl",
2026-06-18T11:18:00.0004580Z         "unit"
2026-06-18T11:18:00.0004762Z       ],
2026-06-18T11:18:00.0004856Z       "stages": {
2026-06-18T11:18:00.0004936Z         "doc": {
2026-06-18T11:18:00.0005037Z           "complete": true,
2026-06-18T11:18:00.0005135Z           "evidence": [
2026-06-18T11:18:00.0005220Z             {
2026-06-18T11:18:00.0005340Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-18T11:18:00.0005426Z               "line": 35
2026-06-18T11:18:00.0005511Z             }
2026-06-18T11:18:00.0005592Z           ]
2026-06-18T11:18:00.0005684Z         },
2026-06-18T11:18:00.0005779Z         "impl": {
2026-06-18T11:18:00.0005874Z           "complete": true,
2026-06-18T11:18:00.0005965Z           "evidence": [
2026-06-18T11:18:00.0006141Z             {
2026-06-18T11:18:00.0006270Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0006356Z               "line": 702
2026-06-18T11:18:00.0006446Z             },
2026-06-18T11:18:00.0006532Z             {
2026-06-18T11:18:00.0006638Z               "path": "crates/xtask/src/main.rs",
2026-06-18T11:18:00.0006737Z               "line": 15
2026-06-18T11:18:00.0006818Z             }
2026-06-18T11:18:00.0006905Z           ]
2026-06-18T11:18:00.0006990Z         },
2026-06-18T11:18:00.0007080Z         "int": {
2026-06-18T11:18:00.0007176Z           "complete": false,
2026-06-18T11:18:00.0007268Z           "evidence": []
2026-06-18T11:18:00.0007357Z         },
2026-06-18T11:18:00.0007442Z         "unit": {
2026-06-18T11:18:00.0007542Z           "complete": true,
2026-06-18T11:18:00.0007627Z           "evidence": [
2026-06-18T11:18:00.0007721Z             {
2026-06-18T11:18:00.0007854Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0007955Z               "line": 1479
2026-06-18T11:18:00.0008040Z             }
2026-06-18T11:18:00.0008121Z           ]
2026-06-18T11:18:00.0008212Z         }
2026-06-18T11:18:00.0008298Z       }
2026-06-18T11:18:00.0008388Z     },
2026-06-18T11:18:00.0008474Z     {
2026-06-18T11:18:00.0008575Z       "id": "REQ-DOCS-5",
2026-06-18T11:18:00.0008769Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-18T11:18:00.0008871Z       "requiredStages": [
2026-06-18T11:18:00.0009032Z         "impl",
2026-06-18T11:18:00.0009118Z         "int"
2026-06-18T11:18:00.0009200Z       ],
2026-06-18T11:18:00.0009289Z       "stages": {
2026-06-18T11:18:00.0009375Z         "doc": {
2026-06-18T11:18:00.0009471Z           "complete": false,
2026-06-18T11:18:00.0009557Z           "evidence": []
2026-06-18T11:18:00.0009647Z         },
2026-06-18T11:18:00.0009723Z         "impl": {
2026-06-18T11:18:00.0009825Z           "complete": true,
2026-06-18T11:18:00.0009923Z           "evidence": [
2026-06-18T11:18:00.0010010Z             {
2026-06-18T11:18:00.0010135Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0010229Z               "line": 703
2026-06-18T11:18:00.0010314Z             },
2026-06-18T11:18:00.0010394Z             {
2026-06-18T11:18:00.0010510Z               "path": "crates/xtask/src/main.rs",
2026-06-18T11:18:00.0010600Z               "line": 113
2026-06-18T11:18:00.0010690Z             }
2026-06-18T11:18:00.0010777Z           ]
2026-06-18T11:18:00.0010863Z         },
2026-06-18T11:18:00.0010948Z         "int": {
2026-06-18T11:18:00.0011038Z           "complete": true,
2026-06-18T11:18:00.0011134Z           "evidence": [
2026-06-18T11:18:00.0011215Z             {
2026-06-18T11:18:00.0011319Z               "path": ".github/workflows/ci.yml",
2026-06-18T11:18:00.0011401Z               "line": 126
2026-06-18T11:18:00.0011487Z             },
2026-06-18T11:18:00.0011592Z             {
2026-06-18T11:18:00.0011740Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0011840Z               "line": 1516
2026-06-18T11:18:00.0011935Z             }
2026-06-18T11:18:00.0012007Z           ]
2026-06-18T11:18:00.0012098Z         },
2026-06-18T11:18:00.0012178Z         "unit": {
2026-06-18T11:18:00.0012278Z           "complete": false,
2026-06-18T11:18:00.0012478Z           "evidence": []
2026-06-18T11:18:00.0012573Z         }
2026-06-18T11:18:00.0012663Z       }
2026-06-18T11:18:00.0012744Z     },
2026-06-18T11:18:00.0012829Z     {
2026-06-18T11:18:00.0012909Z       "id": "REQ-DOCS-6",
2026-06-18T11:18:00.0013257Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-18T11:18:00.0013362Z       "requiredStages": [
2026-06-18T11:18:00.0013453Z         "impl",
2026-06-18T11:18:00.0013538Z         "unit",
2026-06-18T11:18:00.0013619Z         "int"
2026-06-18T11:18:00.0013706Z       ],
2026-06-18T11:18:00.0013796Z       "stages": {
2026-06-18T11:18:00.0013997Z         "doc": {
2026-06-18T11:18:00.0014087Z           "complete": true,
2026-06-18T11:18:00.0014177Z           "evidence": [
2026-06-18T11:18:00.0014273Z             {
2026-06-18T11:18:00.0014397Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-18T11:18:00.0014487Z               "line": 4
2026-06-18T11:18:00.0014578Z             }
2026-06-18T11:18:00.0014665Z           ]
2026-06-18T11:18:00.0014739Z         },
2026-06-18T11:18:00.0014825Z         "impl": {
2026-06-18T11:18:00.0014922Z           "complete": true,
2026-06-18T11:18:00.0015008Z           "evidence": [
2026-06-18T11:18:00.0015092Z             {
2026-06-18T11:18:00.0015213Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0015346Z               "line": 5091
2026-06-18T11:18:00.0015430Z             }
2026-06-18T11:18:00.0015510Z           ]
2026-06-18T11:18:00.0015607Z         },
2026-06-18T11:18:00.0015696Z         "int": {
2026-06-18T11:18:00.0015795Z           "complete": true,
2026-06-18T11:18:00.0015890Z           "evidence": [
2026-06-18T11:18:00.0015982Z             {
2026-06-18T11:18:00.0016100Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-18T11:18:00.0016196Z               "line": 39
2026-06-18T11:18:00.0016282Z             }
2026-06-18T11:18:00.0016367Z           ]
2026-06-18T11:18:00.0016462Z         },
2026-06-18T11:18:00.0016554Z         "unit": {
2026-06-18T11:18:00.0016649Z           "complete": true,
2026-06-18T11:18:00.0016743Z           "evidence": [
2026-06-18T11:18:00.0016830Z             {
2026-06-18T11:18:00.0016939Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0017030Z               "line": 10495
2026-06-18T11:18:00.0017125Z             }
2026-06-18T11:18:00.0017203Z           ]
2026-06-18T11:18:00.0017292Z         }
2026-06-18T11:18:00.0017373Z       }
2026-06-18T11:18:00.0017460Z     },
2026-06-18T11:18:00.0017551Z     {
2026-06-18T11:18:00.0017645Z       "id": "REQ-ELEVATE-1",
2026-06-18T11:18:00.0020780Z       "title": "Cross-platform self-elevating re-launch for privilege-gated commands: a pure decision seam `decide_elevation_path(os, elevation, interactive_tty, has_display, has_pkexec, has_term_emulator) -> ElevatePath{AlreadyElevated, InlineSudo, UacWindow, Pkexec, TerminalEmulator, PrintHint}` selecting how to re-acquire privilege, and the per-OS impure launchers it dispatches — Windows UAC console (ShellExecuteW `runas` on the abs-exe + verbatim argv; the elevated child does the work, prints 'You can close this window', and pauses for a keypress; the original prints 'Elevated terminal launched…' and exits 0; NEVER pipes the child's stdout back across the privilege boundary), Linux desktop pkexec (preferred, native polkit GUI auth) else x-terminal-emulator -e sudo (fallback list x-terminal-emulator→gnome-terminal→konsole→xterm), the existing interactive-TTY inline sudo, and the headless/no-path floor that prints the absolute-path command. Reused by every gated command (not subnet-specific). Generalizes should_auto_elevate.",
2026-06-18T11:18:00.0020925Z       "requiredStages": [
2026-06-18T11:18:00.0021012Z         "doc",
2026-06-18T11:18:00.0021094Z         "impl",
2026-06-18T11:18:00.0021179Z         "unit"
2026-06-18T11:18:00.0021264Z       ],
2026-06-18T11:18:00.0021356Z       "stages": {
2026-06-18T11:18:00.0021441Z         "doc": {
2026-06-18T11:18:00.0021657Z           "complete": true,
2026-06-18T11:18:00.0021752Z           "evidence": [
2026-06-18T11:18:00.0021837Z             {
2026-06-18T11:18:00.0021937Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.0022033Z               "line": 669
2026-06-18T11:18:00.0022161Z             }
2026-06-18T11:18:00.0022271Z           ]
2026-06-18T11:18:00.0022381Z         },
2026-06-18T11:18:00.0022476Z         "impl": {
2026-06-18T11:18:00.0022567Z           "complete": true,
2026-06-18T11:18:00.0022667Z           "evidence": [
2026-06-18T11:18:00.0022766Z             {
2026-06-18T11:18:00.0022881Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0023076Z               "line": 3430
2026-06-18T11:18:00.0023157Z             },
2026-06-18T11:18:00.0023242Z             {
2026-06-18T11:18:00.0023347Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0023431Z               "line": 3475
2026-06-18T11:18:00.0023516Z             },
2026-06-18T11:18:00.0023607Z             {
2026-06-18T11:18:00.0023712Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0023802Z               "line": 3537
2026-06-18T11:18:00.0023879Z             },
2026-06-18T11:18:00.0023970Z             {
2026-06-18T11:18:00.0024084Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.0024179Z               "line": 92
2026-06-18T11:18:00.0024261Z             },
2026-06-18T11:18:00.0024342Z             {
2026-06-18T11:18:00.0024451Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.0024542Z               "line": 148
2026-06-18T11:18:00.0024633Z             }
2026-06-18T11:18:00.0024714Z           ]
2026-06-18T11:18:00.0024813Z         },
2026-06-18T11:18:00.0024905Z         "int": {
2026-06-18T11:18:00.0025000Z           "complete": false,
2026-06-18T11:18:00.0025099Z           "evidence": []
2026-06-18T11:18:00.0025182Z         },
2026-06-18T11:18:00.0025267Z         "unit": {
2026-06-18T11:18:00.0025353Z           "complete": true,
2026-06-18T11:18:00.0025448Z           "evidence": [
2026-06-18T11:18:00.0025539Z             {
2026-06-18T11:18:00.0025638Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.0025719Z               "line": 442
2026-06-18T11:18:00.0025802Z             },
2026-06-18T11:18:00.0025888Z             {
2026-06-18T11:18:00.0025995Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.0026090Z               "line": 460
2026-06-18T11:18:00.0026176Z             }
2026-06-18T11:18:00.0026261Z           ]
2026-06-18T11:18:00.0026345Z         }
2026-06-18T11:18:00.0026427Z       }
2026-06-18T11:18:00.0026509Z     },
2026-06-18T11:18:00.0026580Z     {
2026-06-18T11:18:00.0026703Z       "id": "REQ-ENDPOINT-PURGE",
2026-06-18T11:18:00.0031872Z       "title": "`spt endpoint purge <id>` fully removes an endpoint AND every record keyed on it — the formal teardown devs/CI need for clean test setup/reset. NOT consent-gated (a local dev/test op — no peer consent). OFFLINE-ONLY: refuses while the endpoint is online / daemon-hosted (deleting records out from under a live host risks the daemon re-creating or re-hosting mid-purge); `--force` STOPS it first (endpoint stop → wait for the daemon reconcile to un-host + reap the Psyche) THEN purges. Confirms interactively unless `--yes` (the CI path). Refuses purging the CALLER's OWN running id. All LOCAL — purge reaches only THIS node's records; a remote endpoint's records can't be touched, and its subnet-registry rows decay via the epoch-lease eviction (REQ-HAZARD-REGISTRY-DECAY). Removes: (1) the perch dir TREE recursively — owlery/<id>/ incl every nested {id}-psyche / {id}-w* / shells child (info.json, ready marker, sessions.log ledger, spool.db, inbox, .idle/.more-done sentinels, auth token); (2) the registry address (registry::unregister_address); (3) the context store — ContextStore::remove_endpoint(id): the a-<id> branch+worktree + the <id>/ rows from every p-<project> branch (the same fn `fork --delete-source` already uses); (4) node-local trust rows keyed on the id — access.json + visibility.json. Reuse-heavy: it is `fork --delete-source` generalized (recursive perch remove + unregister + remove_endpoint) + the trust-record cleanup; `endpoint rename` already enumerates the same record set + uses the same offline-only gate. (v0.12.0)",
2026-06-18T11:18:00.0032143Z       "requiredStages": [
2026-06-18T11:18:00.0032231Z         "doc",
2026-06-18T11:18:00.0032316Z         "impl",
2026-06-18T11:18:00.0032401Z         "unit",
2026-06-18T11:18:00.0032488Z         "int"
2026-06-18T11:18:00.0032565Z       ],
2026-06-18T11:18:00.0032645Z       "stages": {
2026-06-18T11:18:00.0032721Z         "doc": {
2026-06-18T11:18:00.0032817Z           "complete": true,
2026-06-18T11:18:00.0033002Z           "evidence": [
2026-06-18T11:18:00.0033093Z             {
2026-06-18T11:18:00.0033185Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.0033275Z               "line": 163
2026-06-18T11:18:00.0033355Z             }
2026-06-18T11:18:00.0033432Z           ]
2026-06-18T11:18:00.0033519Z         },
2026-06-18T11:18:00.0033598Z         "impl": {
2026-06-18T11:18:00.0033693Z           "complete": true,
2026-06-18T11:18:00.0033783Z           "evidence": [
2026-06-18T11:18:00.0033864Z             {
2026-06-18T11:18:00.0034000Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-18T11:18:00.0034081Z               "line": 105
2026-06-18T11:18:00.0034163Z             },
2026-06-18T11:18:00.0034235Z             {
2026-06-18T11:18:00.0034353Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0034444Z               "line": 7058
2026-06-18T11:18:00.0034526Z             }
2026-06-18T11:18:00.0034611Z           ]
2026-06-18T11:18:00.0034701Z         },
2026-06-18T11:18:00.0034788Z         "int": {
2026-06-18T11:18:00.0034878Z           "complete": true,
2026-06-18T11:18:00.0034973Z           "evidence": [
2026-06-18T11:18:00.0035054Z             {
2026-06-18T11:18:00.0035160Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0035259Z               "line": 7223
2026-06-18T11:18:00.0035345Z             }
2026-06-18T11:18:00.0035432Z           ]
2026-06-18T11:18:00.0035512Z         },
2026-06-18T11:18:00.0035598Z         "unit": {
2026-06-18T11:18:00.0035693Z           "complete": true,
2026-06-18T11:18:00.0035785Z           "evidence": [
2026-06-18T11:18:00.0035869Z             {
2026-06-18T11:18:00.0035974Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0036066Z               "line": 7194
2026-06-18T11:18:00.0036147Z             }
2026-06-18T11:18:00.0036232Z           ]
2026-06-18T11:18:00.0036323Z         }
2026-06-18T11:18:00.0036400Z       }
2026-06-18T11:18:00.0036490Z     },
2026-06-18T11:18:00.0036579Z     {
2026-06-18T11:18:00.0036694Z       "id": "REQ-ENDPOINT-STOP-OFFLINE",
2026-06-18T11:18:00.0037974Z       "title": "H3: `spt endpoint stop <id>` marks the endpoint OFFLINE (alive=false), not merely de-readied. cmd_stop (cli.rs:2994-3010) removes the ready marker + unregisters the address but does NOT set status offline, so a stopped daemon-hosted endpoint still reports alive=true (status=online latch). FIX: add set_status(perch, STATUS_OFFLINE) to cmd_stop — folds with B2 (same setter). Unit: stop → is_perch_alive=false / alive=false. (v0.12.0)",
2026-06-18T11:18:00.0038093Z       "requiredStages": [
2026-06-18T11:18:00.0038178Z         "impl",
2026-06-18T11:18:00.0038255Z         "unit"
2026-06-18T11:18:00.0038342Z       ],
2026-06-18T11:18:00.0038426Z       "stages": {
2026-06-18T11:18:00.0038507Z         "doc": {
2026-06-18T11:18:00.0038609Z           "complete": false,
2026-06-18T11:18:00.0038695Z           "evidence": []
2026-06-18T11:18:00.0038774Z         },
2026-06-18T11:18:00.0038851Z         "impl": {
2026-06-18T11:18:00.0039028Z           "complete": true,
2026-06-18T11:18:00.0039108Z           "evidence": [
2026-06-18T11:18:00.0039193Z             {
2026-06-18T11:18:00.0039294Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0039383Z               "line": 3023
2026-06-18T11:18:00.0039467Z             }
2026-06-18T11:18:00.0039659Z           ]
2026-06-18T11:18:00.0039739Z         },
2026-06-18T11:18:00.0039820Z         "int": {
2026-06-18T11:18:00.0039922Z           "complete": false,
2026-06-18T11:18:00.0040007Z           "evidence": []
2026-06-18T11:18:00.0040082Z         },
2026-06-18T11:18:00.0040168Z         "unit": {
2026-06-18T11:18:00.0040260Z           "complete": true,
2026-06-18T11:18:00.0040346Z           "evidence": [
2026-06-18T11:18:00.0040426Z             {
2026-06-18T11:18:00.0040527Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0040617Z               "line": 7170
2026-06-18T11:18:00.0040693Z             }
2026-06-18T11:18:00.0040876Z           ]
2026-06-18T11:18:00.0040955Z         }
2026-06-18T11:18:00.0041046Z       }
2026-06-18T11:18:00.0041127Z     },
2026-06-18T11:18:00.0041214Z     {
2026-06-18T11:18:00.0041298Z       "id": "REQ-EP-1",
2026-06-18T11:18:00.0041423Z       "title": "Day-one endpoint types; open type system",
2026-06-18T11:18:00.0041524Z       "requiredStages": [
2026-06-18T11:18:00.0041613Z         "impl",
2026-06-18T11:18:00.0041704Z         "unit"
2026-06-18T11:18:00.0041782Z       ],
2026-06-18T11:18:00.0041872Z       "stages": {
2026-06-18T11:18:00.0041965Z         "doc": {
2026-06-18T11:18:00.0042050Z           "complete": false,
2026-06-18T11:18:00.0042147Z           "evidence": []
2026-06-18T11:18:00.0042229Z         },
2026-06-18T11:18:00.0042318Z         "impl": {
2026-06-18T11:18:00.0042408Z           "complete": true,
2026-06-18T11:18:00.0042500Z           "evidence": [
2026-06-18T11:18:00.0042590Z             {
2026-06-18T11:18:00.0042708Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-18T11:18:00.0042810Z               "line": 77
2026-06-18T11:18:00.0042881Z             },
2026-06-18T11:18:00.0042966Z             {
2026-06-18T11:18:00.0043086Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-18T11:18:00.0043172Z               "line": 94
2026-06-18T11:18:00.0043253Z             }
2026-06-18T11:18:00.0043338Z           ]
2026-06-18T11:18:00.0043421Z         },
2026-06-18T11:18:00.0043501Z         "int": {
2026-06-18T11:18:00.0043596Z           "complete": false,
2026-06-18T11:18:00.0043682Z           "evidence": []
2026-06-18T11:18:00.0043764Z         },
2026-06-18T11:18:00.0043853Z         "unit": {
2026-06-18T11:18:00.0043939Z           "complete": true,
2026-06-18T11:18:00.0044026Z           "evidence": [
2026-06-18T11:18:00.0044102Z             {
2026-06-18T11:18:00.0044267Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-18T11:18:00.0044367Z               "line": 161
2026-06-18T11:18:00.0044471Z             },
2026-06-18T11:18:00.0044556Z             {
2026-06-18T11:18:00.0044665Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-18T11:18:00.0044762Z               "line": 178
2026-06-18T11:18:00.0044842Z             }
2026-06-18T11:18:00.0044932Z           ]
2026-06-18T11:18:00.0045009Z         }
2026-06-18T11:18:00.0045091Z       }
2026-06-18T11:18:00.0045181Z     },
2026-06-18T11:18:00.0045261Z     {
2026-06-18T11:18:00.0045353Z       "id": "REQ-EP-2",
2026-06-18T11:18:00.0045509Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-18T11:18:00.0045615Z       "requiredStages": [
2026-06-18T11:18:00.0045691Z         "impl",
2026-06-18T11:18:00.0045786Z         "unit"
2026-06-18T11:18:00.0045867Z       ],
2026-06-18T11:18:00.0045958Z       "stages": {
2026-06-18T11:18:00.0046049Z         "doc": {
2026-06-18T11:18:00.0046144Z           "complete": false,
2026-06-18T11:18:00.0046239Z           "evidence": []
2026-06-18T11:18:00.0046326Z         },
2026-06-18T11:18:00.0046416Z         "impl": {
2026-06-18T11:18:00.0046515Z           "complete": true,
2026-06-18T11:18:00.0046603Z           "evidence": [
2026-06-18T11:18:00.0046683Z             {
2026-06-18T11:18:00.0046797Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-18T11:18:00.0046893Z               "line": 114
2026-06-18T11:18:00.0046979Z             },
2026-06-18T11:18:00.0047139Z             {
2026-06-18T11:18:00.0047268Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-18T11:18:00.0047353Z               "line": 131
2026-06-18T11:18:00.0047437Z             },
2026-06-18T11:18:00.0047523Z             {
2026-06-18T11:18:00.0047643Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-18T11:18:00.0047733Z               "line": 138
2026-06-18T11:18:00.0047813Z             }
2026-06-18T11:18:00.0047896Z           ]
2026-06-18T11:18:00.0047981Z         },
2026-06-18T11:18:00.0048067Z         "int": {
2026-06-18T11:18:00.0048157Z           "complete": false,
2026-06-18T11:18:00.0048239Z           "evidence": []
2026-06-18T11:18:00.0048419Z         },
2026-06-18T11:18:00.0048500Z         "unit": {
2026-06-18T11:18:00.0048602Z           "complete": true,
2026-06-18T11:18:00.0048682Z           "evidence": [
2026-06-18T11:18:00.0048772Z             {
2026-06-18T11:18:00.0048888Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-18T11:18:00.0049063Z               "line": 190
2026-06-18T11:18:00.0049140Z             },
2026-06-18T11:18:00.0049222Z             {
2026-06-18T11:18:00.0049334Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-18T11:18:00.0049416Z               "line": 208
2026-06-18T11:18:00.0049503Z             },
2026-06-18T11:18:00.0049584Z             {
2026-06-18T11:18:00.0049706Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-18T11:18:00.0049787Z               "line": 221
2026-06-18T11:18:00.0049878Z             }
2026-06-18T11:18:00.0049961Z           ]
2026-06-18T11:18:00.0050047Z         }
2026-06-18T11:18:00.0050137Z       }
2026-06-18T11:18:00.0050214Z     },
2026-06-18T11:18:00.0050309Z     {
2026-06-18T11:18:00.0050409Z       "id": "REQ-EP-3",
2026-06-18T11:18:00.0050591Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-18T11:18:00.0050695Z       "requiredStages": [
2026-06-18T11:18:00.0050782Z         "impl",
2026-06-18T11:18:00.0050872Z         "unit"
2026-06-18T11:18:00.0050962Z       ],
2026-06-18T11:18:00.0051058Z       "stages": {
2026-06-18T11:18:00.0051145Z         "doc": {
2026-06-18T11:18:00.0051239Z           "complete": false,
2026-06-18T11:18:00.0051334Z           "evidence": []
2026-06-18T11:18:00.0051421Z         },
2026-06-18T11:18:00.0051515Z         "impl": {
2026-06-18T11:18:00.0051606Z           "complete": true,
2026-06-18T11:18:00.0051697Z           "evidence": [
2026-06-18T11:18:00.0051774Z             {
2026-06-18T11:18:00.0051892Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-18T11:18:00.0051992Z               "line": 31
2026-06-18T11:18:00.0052080Z             },
2026-06-18T11:18:00.0052173Z             {
2026-06-18T11:18:00.0052288Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-18T11:18:00.0052385Z               "line": 49
2026-06-18T11:18:00.0052465Z             }
2026-06-18T11:18:00.0052549Z           ]
2026-06-18T11:18:00.0052639Z         },
2026-06-18T11:18:00.0052716Z         "int": {
2026-06-18T11:18:00.0052826Z           "complete": false,
2026-06-18T11:18:00.0052921Z           "evidence": []
2026-06-18T11:18:00.0053012Z         },
2026-06-18T11:18:00.0053098Z         "unit": {
2026-06-18T11:18:00.0053192Z           "complete": true,
2026-06-18T11:18:00.0053293Z           "evidence": [
2026-06-18T11:18:00.0053375Z             {
2026-06-18T11:18:00.0053503Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-18T11:18:00.0053588Z               "line": 156
2026-06-18T11:18:00.0053671Z             },
2026-06-18T11:18:00.0053751Z             {
2026-06-18T11:18:00.0053874Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-18T11:18:00.0053985Z               "line": 164
2026-06-18T11:18:00.0054075Z             },
2026-06-18T11:18:00.0054151Z             {
2026-06-18T11:18:00.0054267Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-18T11:18:00.0054362Z               "line": 177
2026-06-18T11:18:00.0054451Z             },
2026-06-18T11:18:00.0054533Z             {
2026-06-18T11:18:00.0054776Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-18T11:18:00.0054865Z               "line": 200
2026-06-18T11:18:00.0054952Z             },
2026-06-18T11:18:00.0055036Z             {
2026-06-18T11:18:00.0055149Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-18T11:18:00.0055240Z               "line": 216
2026-06-18T11:18:00.0055317Z             },
2026-06-18T11:18:00.0055397Z             {
2026-06-18T11:18:00.0055511Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-18T11:18:00.0055603Z               "line": 233
2026-06-18T11:18:00.0055684Z             }
2026-06-18T11:18:00.0055774Z           ]
2026-06-18T11:18:00.0055961Z         }
2026-06-18T11:18:00.0056050Z       }
2026-06-18T11:18:00.0056140Z     },
2026-06-18T11:18:00.0056214Z     {
2026-06-18T11:18:00.0056313Z       "id": "REQ-EP-4",
2026-06-18T11:18:00.0056460Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-18T11:18:00.0056566Z       "requiredStages": [
2026-06-18T11:18:00.0056666Z         "impl",
2026-06-18T11:18:00.0056756Z         "unit"
2026-06-18T11:18:00.0056843Z       ],
2026-06-18T11:18:00.0056924Z       "stages": {
2026-06-18T11:18:00.0057013Z         "doc": {
2026-06-18T11:18:00.0057104Z           "complete": false,
2026-06-18T11:18:00.0057201Z           "evidence": []
2026-06-18T11:18:00.0057285Z         },
2026-06-18T11:18:00.0057376Z         "impl": {
2026-06-18T11:18:00.0057477Z           "complete": true,
2026-06-18T11:18:00.0057558Z           "evidence": [
2026-06-18T11:18:00.0057648Z             {
2026-06-18T11:18:00.0057756Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T11:18:00.0057857Z               "line": 718
2026-06-18T11:18:00.0057941Z             },
2026-06-18T11:18:00.0058035Z             {
2026-06-18T11:18:00.0058155Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T11:18:00.0058236Z               "line": 1079
2026-06-18T11:18:00.0058326Z             },
2026-06-18T11:18:00.0058412Z             {
2026-06-18T11:18:00.0058528Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.0058613Z               "line": 1434
2026-06-18T11:18:00.0058707Z             },
2026-06-18T11:18:00.0058790Z             {
2026-06-18T11:18:00.0058909Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-18T11:18:00.0059075Z               "line": 118
2026-06-18T11:18:00.0059162Z             },
2026-06-18T11:18:00.0059261Z             {
2026-06-18T11:18:00.0059371Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-18T11:18:00.0059462Z               "line": 651
2026-06-18T11:18:00.0059552Z             },
2026-06-18T11:18:00.0059633Z             {
2026-06-18T11:18:00.0059753Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-18T11:18:00.0059848Z               "line": 788
2026-06-18T11:18:00.0059924Z             },
2026-06-18T11:18:00.0060005Z             {
2026-06-18T11:18:00.0060130Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:18:00.0060223Z               "line": 271
2026-06-18T11:18:00.0060309Z             },
2026-06-18T11:18:00.0060404Z             {
2026-06-18T11:18:00.0060526Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:18:00.0060621Z               "line": 458
2026-06-18T11:18:00.0060703Z             },
2026-06-18T11:18:00.0060789Z             {
2026-06-18T11:18:00.0060912Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:18:00.0060993Z               "line": 1246
2026-06-18T11:18:00.0061080Z             }
2026-06-18T11:18:00.0061170Z           ]
2026-06-18T11:18:00.0061260Z         },
2026-06-18T11:18:00.0061356Z         "int": {
2026-06-18T11:18:00.0061446Z           "complete": false,
2026-06-18T11:18:00.0061541Z           "evidence": []
2026-06-18T11:18:00.0061623Z         },
2026-06-18T11:18:00.0061723Z         "unit": {
2026-06-18T11:18:00.0061814Z           "complete": true,
2026-06-18T11:18:00.0061914Z           "evidence": [
2026-06-18T11:18:00.0061996Z             {
2026-06-18T11:18:00.0062219Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-18T11:18:00.0062315Z               "line": 879
2026-06-18T11:18:00.0062395Z             },
2026-06-18T11:18:00.0062490Z             {
2026-06-18T11:18:00.0062606Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-18T11:18:00.0062701Z               "line": 76
2026-06-18T11:18:00.0062786Z             },
2026-06-18T11:18:00.0062868Z             {
2026-06-18T11:18:00.0062997Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-18T11:18:00.0063081Z               "line": 147
2026-06-18T11:18:00.0063166Z             }
2026-06-18T11:18:00.0063248Z           ]
2026-06-18T11:18:00.0063433Z         }
2026-06-18T11:18:00.0063519Z       }
2026-06-18T11:18:00.0063596Z     },
2026-06-18T11:18:00.0063677Z     {
2026-06-18T11:18:00.0063772Z       "id": "REQ-EP-5",
2026-06-18T11:18:00.0064415Z       "title": "Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope",
2026-06-18T11:18:00.0064521Z       "requiredStages": [
2026-06-18T11:18:00.0064621Z         "impl",
2026-06-18T11:18:00.0064702Z         "unit",
2026-06-18T11:18:00.0064788Z         "int"
2026-06-18T11:18:00.0064880Z       ],
2026-06-18T11:18:00.0064959Z       "stages": {
2026-06-18T11:18:00.0065045Z         "doc": {
2026-06-18T11:18:00.0065136Z           "complete": false,
2026-06-18T11:18:00.0065214Z           "evidence": []
2026-06-18T11:18:00.0065302Z         },
2026-06-18T11:18:00.0065383Z         "impl": {
2026-06-18T11:18:00.0065482Z           "complete": true,
2026-06-18T11:18:00.0065564Z           "evidence": [
2026-06-18T11:18:00.0065652Z             {
2026-06-18T11:18:00.0065776Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.0065858Z               "line": 367
2026-06-18T11:18:00.0065948Z             },
2026-06-18T11:18:00.0066038Z             {
2026-06-18T11:18:00.0066168Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-18T11:18:00.0066249Z               "line": 18
2026-06-18T11:18:00.0066348Z             },
2026-06-18T11:18:00.0066420Z             {
2026-06-18T11:18:00.0066549Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-18T11:18:00.0066639Z               "line": 63
2026-06-18T11:18:00.0066725Z             },
2026-06-18T11:18:00.0066812Z             {
2026-06-18T11:18:00.0066930Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-18T11:18:00.0067025Z               "line": 92
2026-06-18T11:18:00.0067122Z             },
2026-06-18T11:18:00.0067216Z             {
2026-06-18T11:18:00.0067340Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-18T11:18:00.0067432Z               "line": 167
2026-06-18T11:18:00.0067521Z             },
2026-06-18T11:18:00.0067607Z             {
2026-06-18T11:18:00.0067732Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-18T11:18:00.0067822Z               "line": 179
2026-06-18T11:18:00.0067907Z             },
2026-06-18T11:18:00.0067984Z             {
2026-06-18T11:18:00.0068099Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0068193Z               "line": 114
2026-06-18T11:18:00.0068278Z             },
2026-06-18T11:18:00.0068369Z             {
2026-06-18T11:18:00.0068491Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T11:18:00.0068577Z               "line": 22
2026-06-18T11:18:00.0068677Z             },
2026-06-18T11:18:00.0068754Z             {
2026-06-18T11:18:00.0068882Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T11:18:00.0069097Z               "line": 145
2026-06-18T11:18:00.0069191Z             },
2026-06-18T11:18:00.0069282Z             {
2026-06-18T11:18:00.0069397Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T11:18:00.0069497Z               "line": 174
2026-06-18T11:18:00.0069572Z             },
2026-06-18T11:18:00.0073224Z             {
2026-06-18T11:18:00.0073442Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T11:18:00.0073557Z               "line": 196
2026-06-18T11:18:00.0073651Z             },
2026-06-18T11:18:00.0073726Z             {
2026-06-18T11:18:00.0073866Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T11:18:00.0073952Z               "line": 221
2026-06-18T11:18:00.0074031Z             },
2026-06-18T11:18:00.0074113Z             {
2026-06-18T11:18:00.0074242Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T11:18:00.0074336Z               "line": 247
2026-06-18T11:18:00.0074418Z             },
2026-06-18T11:18:00.0074646Z             {
2026-06-18T11:18:00.0074820Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T11:18:00.0074934Z               "line": 270
2026-06-18T11:18:00.0075014Z             },
2026-06-18T11:18:00.0075096Z             {
2026-06-18T11:18:00.0075224Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.0075319Z               "line": 100
2026-06-18T11:18:00.0075411Z             },
2026-06-18T11:18:00.0075492Z             {
2026-06-18T11:18:00.0075605Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0075691Z               "line": 5907
2026-06-18T11:18:00.0075774Z             },
2026-06-18T11:18:00.0075862Z             {
2026-06-18T11:18:00.0075966Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0076067Z               "line": 6041
2026-06-18T11:18:00.0076152Z             },
2026-06-18T11:18:00.0076227Z             {
2026-06-18T11:18:00.0076331Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0076427Z               "line": 6207
2026-06-18T11:18:00.0076518Z             },
2026-06-18T11:18:00.0076598Z             {
2026-06-18T11:18:00.0076704Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0076794Z               "line": 6735
2026-06-18T11:18:00.0076889Z             }
2026-06-18T11:18:00.0076985Z           ]
2026-06-18T11:18:00.0077067Z         },
2026-06-18T11:18:00.0077157Z         "int": {
2026-06-18T11:18:00.0077247Z           "complete": true,
2026-06-18T11:18:00.0077334Z           "evidence": [
2026-06-18T11:18:00.0077409Z             {
2026-06-18T11:18:00.0077542Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-18T11:18:00.0077624Z               "line": 16
2026-06-18T11:18:00.0077710Z             },
2026-06-18T11:18:00.0077801Z             {
2026-06-18T11:18:00.0077905Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-18T11:18:00.0077997Z               "line": 15
2026-06-18T11:18:00.0078076Z             }
2026-06-18T11:18:00.0078177Z           ]
2026-06-18T11:18:00.0078259Z         },
2026-06-18T11:18:00.0078345Z         "unit": {
2026-06-18T11:18:00.0078439Z           "complete": true,
2026-06-18T11:18:00.0078525Z           "evidence": [
2026-06-18T11:18:00.0078602Z             {
2026-06-18T11:18:00.0078720Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-18T11:18:00.0078810Z               "line": 246
2026-06-18T11:18:00.0078896Z             },
2026-06-18T11:18:00.0079065Z             {
2026-06-18T11:18:00.0079193Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-18T11:18:00.0079275Z               "line": 306
2026-06-18T11:18:00.0079357Z             },
2026-06-18T11:18:00.0079442Z             {
2026-06-18T11:18:00.0079556Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-18T11:18:00.0079638Z               "line": 363
2026-06-18T11:18:00.0079723Z             },
2026-06-18T11:18:00.0079809Z             {
2026-06-18T11:18:00.0079924Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T11:18:00.0080024Z               "line": 286
2026-06-18T11:18:00.0080104Z             },
2026-06-18T11:18:00.0080191Z             {
2026-06-18T11:18:00.0080310Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T11:18:00.0080391Z               "line": 338
2026-06-18T11:18:00.0080591Z             },
2026-06-18T11:18:00.0080681Z             {
2026-06-18T11:18:00.0080806Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.0080892Z               "line": 779
2026-06-18T11:18:00.0080972Z             },
2026-06-18T11:18:00.0081054Z             {
2026-06-18T11:18:00.0081160Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0081250Z               "line": 8521
2026-06-18T11:18:00.0081335Z             },
2026-06-18T11:18:00.0081414Z             {
2026-06-18T11:18:00.0081515Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0081600Z               "line": 8674
2026-06-18T11:18:00.0081680Z             },
2026-06-18T11:18:00.0081856Z             {
2026-06-18T11:18:00.0081961Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0082041Z               "line": 9263
2026-06-18T11:18:00.0082123Z             },
2026-06-18T11:18:00.0082210Z             {
2026-06-18T11:18:00.0082309Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0082409Z               "line": 9379
2026-06-18T11:18:00.0082481Z             }
2026-06-18T11:18:00.0082557Z           ]
2026-06-18T11:18:00.0082638Z         }
2026-06-18T11:18:00.0082719Z       }
2026-06-18T11:18:00.0082801Z     },
2026-06-18T11:18:00.0082881Z     {
2026-06-18T11:18:00.0082976Z       "id": "REQ-EP-6",
2026-06-18T11:18:00.0084421Z       "title": "Gateway type acceptance: a Gateway-typed perch binds (api bind --type, open type system — un-hardcode the live_agent default), advertises/addressable like any endpoint, owns shells (owner validation not agent-family-gated), subscribes to digests, and is the user-msg identity gate's user-backed origin (REQ-MSG-5); in-tree mock-gateway fixture (R-DOCS-2 pattern, no downstream adapter code). Cross-node WAN Gateway-origin (registry endpoint_type trust) tracked by REQ-MSG-6",
2026-06-18T11:18:00.0084540Z       "requiredStages": [
2026-06-18T11:18:00.0084620Z         "doc",
2026-06-18T11:18:00.0084707Z         "impl",
2026-06-18T11:18:00.0084797Z         "unit"
2026-06-18T11:18:00.0084873Z       ],
2026-06-18T11:18:00.0084973Z       "stages": {
2026-06-18T11:18:00.0085051Z         "doc": {
2026-06-18T11:18:00.0085151Z           "complete": true,
2026-06-18T11:18:00.0085240Z           "evidence": [
2026-06-18T11:18:00.0085332Z             {
2026-06-18T11:18:00.0085431Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.0085517Z               "line": 227
2026-06-18T11:18:00.0085607Z             }
2026-06-18T11:18:00.0085690Z           ]
2026-06-18T11:18:00.0085770Z         },
2026-06-18T11:18:00.0085865Z         "impl": {
2026-06-18T11:18:00.0085957Z           "complete": true,
2026-06-18T11:18:00.0086052Z           "evidence": [
2026-06-18T11:18:00.0086141Z             {
2026-06-18T11:18:00.0086266Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.0086357Z               "line": 203
2026-06-18T11:18:00.0086446Z             }
2026-06-18T11:18:00.0086532Z           ]
2026-06-18T11:18:00.0086608Z         },
2026-06-18T11:18:00.0086703Z         "int": {
2026-06-18T11:18:00.0086791Z           "complete": true,
2026-06-18T11:18:00.0086886Z           "evidence": [
2026-06-18T11:18:00.0086963Z             {
2026-06-18T11:18:00.0087092Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-18T11:18:00.0087192Z               "line": 18
2026-06-18T11:18:00.0087273Z             }
2026-06-18T11:18:00.0087359Z           ]
2026-06-18T11:18:00.0087444Z         },
2026-06-18T11:18:00.0087530Z         "unit": {
2026-06-18T11:18:00.0087627Z           "complete": true,
2026-06-18T11:18:00.0087717Z           "evidence": [
2026-06-18T11:18:00.0087802Z             {
2026-06-18T11:18:00.0087923Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.0088017Z               "line": 555
2026-06-18T11:18:00.0088097Z             },
2026-06-18T11:18:00.0088184Z             {
2026-06-18T11:18:00.0088294Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.0088389Z               "line": 787
2026-06-18T11:18:00.0088552Z             }
2026-06-18T11:18:00.0088637Z           ]
2026-06-18T11:18:00.0088723Z         }
2026-06-18T11:18:00.0088804Z       }
2026-06-18T11:18:00.0088882Z     },
2026-06-18T11:18:00.0089033Z     {
2026-06-18T11:18:00.0089124Z       "id": "REQ-EP-7",
2026-06-18T11:18:00.0090727Z       "title": "Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-context.md (replicates with the mind on the same a-<id> branch); renders FIRST at start-transition context injection (role -> live-context -> project-context); SOLE writer `spt endpoint role --overwrite <file>` — mechanical no-automated-writer guarantee (echo-commune ingest / signoff / Psyche reconcile structurally exclude it). The user-backed-origin hard gate on the writer is a deferred later tightening (rides the user-msg identity plumbing)",
2026-06-18T11:18:00.0090922Z       "requiredStages": [
2026-06-18T11:18:00.0091013Z         "doc",
2026-06-18T11:18:00.0091095Z         "impl",
2026-06-18T11:18:00.0091185Z         "unit"
2026-06-18T11:18:00.0091265Z       ],
2026-06-18T11:18:00.0091351Z       "stages": {
2026-06-18T11:18:00.0091439Z         "doc": {
2026-06-18T11:18:00.0091532Z           "complete": true,
2026-06-18T11:18:00.0091619Z           "evidence": [
2026-06-18T11:18:00.0091705Z             {
2026-06-18T11:18:00.0091805Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.0091899Z               "line": 472
2026-06-18T11:18:00.0091994Z             }
2026-06-18T11:18:00.0092075Z           ]
2026-06-18T11:18:00.0092160Z         },
2026-06-18T11:18:00.0092245Z         "impl": {
2026-06-18T11:18:00.0092330Z           "complete": true,
2026-06-18T11:18:00.0092426Z           "evidence": [
2026-06-18T11:18:00.0092507Z             {
2026-06-18T11:18:00.0092620Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T11:18:00.0092713Z               "line": 505
2026-06-18T11:18:00.0092793Z             },
2026-06-18T11:18:00.0092883Z             {
2026-06-18T11:18:00.0092988Z               "path": "crates/spt-live/src/resume.rs",
2026-06-18T11:18:00.0093074Z               "line": 87
2026-06-18T11:18:00.0093155Z             },
2026-06-18T11:18:00.0093241Z             {
2026-06-18T11:18:00.0093370Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.0093456Z               "line": 81
2026-06-18T11:18:00.0093536Z             },
2026-06-18T11:18:00.0093618Z             {
2026-06-18T11:18:00.0093742Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.0093828Z               "line": 166
2026-06-18T11:18:00.0093913Z             },
2026-06-18T11:18:00.0094000Z             {
2026-06-18T11:18:00.0094104Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0094204Z               "line": 1533
2026-06-18T11:18:00.0094291Z             }
2026-06-18T11:18:00.0094367Z           ]
2026-06-18T11:18:00.0094456Z         },
2026-06-18T11:18:00.0094533Z         "int": {
2026-06-18T11:18:00.0094630Z           "complete": false,
2026-06-18T11:18:00.0094729Z           "evidence": []
2026-06-18T11:18:00.0094808Z         },
2026-06-18T11:18:00.0094894Z         "unit": {
2026-06-18T11:18:00.0094986Z           "complete": true,
2026-06-18T11:18:00.0095067Z           "evidence": [
2026-06-18T11:18:00.0095147Z             {
2026-06-18T11:18:00.0095262Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T11:18:00.0095343Z               "line": 623
2026-06-18T11:18:00.0095424Z             },
2026-06-18T11:18:00.0095514Z             {
2026-06-18T11:18:00.0095630Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-18T11:18:00.0095720Z               "line": 212
2026-06-18T11:18:00.0095805Z             },
2026-06-18T11:18:00.0095897Z             {
2026-06-18T11:18:00.0096006Z               "path": "crates/spt-live/src/resume.rs",
2026-06-18T11:18:00.0096101Z               "line": 307
2026-06-18T11:18:00.0096177Z             },
2026-06-18T11:18:00.0096259Z             {
2026-06-18T11:18:00.0096373Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0096555Z               "line": 7563
2026-06-18T11:18:00.0096645Z             },
2026-06-18T11:18:00.0096731Z             {
2026-06-18T11:18:00.0096836Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0096931Z               "line": 7590
2026-06-18T11:18:00.0097016Z             }
2026-06-18T11:18:00.0097097Z           ]
2026-06-18T11:18:00.0097178Z         }
2026-06-18T11:18:00.0097263Z       }
2026-06-18T11:18:00.0097337Z     },
2026-06-18T11:18:00.0097423Z     {
2026-06-18T11:18:00.0097523Z       "id": "REQ-FRONT-1",
2026-06-18T11:18:00.0097694Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-18T11:18:00.0097872Z       "requiredStages": [],
2026-06-18T11:18:00.0097953Z       "stages": {
2026-06-18T11:18:00.0098038Z         "doc": {
2026-06-18T11:18:00.0098129Z           "complete": false,
2026-06-18T11:18:00.0098224Z           "evidence": []
2026-06-18T11:18:00.0098305Z         },
2026-06-18T11:18:00.0098386Z         "impl": {
2026-06-18T11:18:00.0098487Z           "complete": false,
2026-06-18T11:18:00.0098568Z           "evidence": []
2026-06-18T11:18:00.0098648Z         },
2026-06-18T11:18:00.0098729Z         "int": {
2026-06-18T11:18:00.0098831Z           "complete": false,
2026-06-18T11:18:00.0098926Z           "evidence": []
2026-06-18T11:18:00.0099079Z         },
2026-06-18T11:18:00.0099169Z         "unit": {
2026-06-18T11:18:00.0099254Z           "complete": false,
2026-06-18T11:18:00.0099350Z           "evidence": []
2026-06-18T11:18:00.0099437Z         }
2026-06-18T11:18:00.0099517Z       }
2026-06-18T11:18:00.0099602Z     },
2026-06-18T11:18:00.0099684Z     {
2026-06-18T11:18:00.0099818Z       "id": "REQ-HAZARD-BRAIN-RESPAWN-PATH",
2026-06-18T11:18:00.0102217Z       "title": "The broker respawns the brain onto the APPLIED bytes, not the renamed old binary: the candidate-binary default is the canonical exe path captured ONCE at broker start, never a per-spawn std::env::current_exe() — on Linux current_exe (readlink /proc/self/exe) is inode-tracking and follows the `apply` rename (spt -> spt.old-N), so a resident broker would respawn the brain onto OLD bytes while recording `applied` (Windows GetModuleFileName is path-at-start, so Windows was green; ADR-0018 Q3 silently assumed path-string semantics). Backstop: promotion gates on bytes — a trial promotes only if brain.ready exe_hash == the staged artifact hash for this platform, else auto-rollback + loud notif (readiness != new-bytes was the false-success that recorded applied:8 over a v0.4.0 brain on kitsubito, 2026-06-11). KNOWN-HAZARDS 6.11.",
2026-06-18T11:18:00.0102323Z       "requiredStages": [
2026-06-18T11:18:00.0102407Z         "doc",
2026-06-18T11:18:00.0102511Z         "impl",
2026-06-18T11:18:00.0102592Z         "unit",
2026-06-18T11:18:00.0102678Z         "int"
2026-06-18T11:18:00.0102757Z       ],
2026-06-18T11:18:00.0102838Z       "stages": {
2026-06-18T11:18:00.0102914Z         "doc": {
2026-06-18T11:18:00.0103015Z           "complete": true,
2026-06-18T11:18:00.0103105Z           "evidence": [
2026-06-18T11:18:00.0103185Z             {
2026-06-18T11:18:00.0103301Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T11:18:00.0103382Z               "line": 333
2026-06-18T11:18:00.0103472Z             }
2026-06-18T11:18:00.0103558Z           ]
2026-06-18T11:18:00.0103634Z         },
2026-06-18T11:18:00.0103715Z         "impl": {
2026-06-18T11:18:00.0103796Z           "complete": true,
2026-06-18T11:18:00.0103883Z           "evidence": [
2026-06-18T11:18:00.0103968Z             {
2026-06-18T11:18:00.0104092Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0104178Z               "line": 494
2026-06-18T11:18:00.0104269Z             },
2026-06-18T11:18:00.0104345Z             {
2026-06-18T11:18:00.0104468Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0104556Z               "line": 499
2026-06-18T11:18:00.0104631Z             },
2026-06-18T11:18:00.0104717Z             {
2026-06-18T11:18:00.0104936Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0105031Z               "line": 874
2026-06-18T11:18:00.0105113Z             },
2026-06-18T11:18:00.0105195Z             {
2026-06-18T11:18:00.0105303Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0105392Z               "line": 915
2026-06-18T11:18:00.0105469Z             },
2026-06-18T11:18:00.0105551Z             {
2026-06-18T11:18:00.0105660Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0105755Z               "line": 926
2026-06-18T11:18:00.0105837Z             },
2026-06-18T11:18:00.0105918Z             {
2026-06-18T11:18:00.0106156Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.0106242Z               "line": 358
2026-06-18T11:18:00.0106322Z             }
2026-06-18T11:18:00.0106409Z           ]
2026-06-18T11:18:00.0106480Z         },
2026-06-18T11:18:00.0106566Z         "int": {
2026-06-18T11:18:00.0106661Z           "complete": true,
2026-06-18T11:18:00.0106752Z           "evidence": [
2026-06-18T11:18:00.0106838Z             {
2026-06-18T11:18:00.0106971Z               "path": "crates/spt/tests/brain_respawn_rename.rs",
2026-06-18T11:18:00.0107062Z               "line": 30
2026-06-18T11:18:00.0107153Z             }
2026-06-18T11:18:00.0107233Z           ]
2026-06-18T11:18:00.0107323Z         },
2026-06-18T11:18:00.0107406Z         "unit": {
2026-06-18T11:18:00.0107496Z           "complete": true,
2026-06-18T11:18:00.0107576Z           "evidence": [
2026-06-18T11:18:00.0107657Z             {
2026-06-18T11:18:00.0107771Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0107870Z               "line": 1493
2026-06-18T11:18:00.0107950Z             },
2026-06-18T11:18:00.0108031Z             {
2026-06-18T11:18:00.0108151Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0108236Z               "line": 1518
2026-06-18T11:18:00.0108326Z             },
2026-06-18T11:18:00.0108408Z             {
2026-06-18T11:18:00.0108518Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0108617Z               "line": 1535
2026-06-18T11:18:00.0108690Z             },
2026-06-18T11:18:00.0108771Z             {
2026-06-18T11:18:00.0108889Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0109038Z               "line": 1578
2026-06-18T11:18:00.0109123Z             }
2026-06-18T11:18:00.0109199Z           ]
2026-06-18T11:18:00.0109285Z         }
2026-06-18T11:18:00.0109372Z       }
2026-06-18T11:18:00.0109452Z     },
2026-06-18T11:18:00.0109533Z     {
2026-06-18T11:18:00.0109677Z       "id": "REQ-HAZARD-BRAIN-RESTART-LIFECYCLE-REHYDRATE",
2026-06-18T11:18:00.0112205Z       "title": "B4 (deepest): a bare brain restart (broker survives) REHYDRATES the live-agent lifecycle so post-restart endpoints are hosted + attachable. Today resume_sessions (brainproc.rs:186, brain.rs:797-809) re-subscribes to the broker's PTY sessions but ALL BrainLifecycle instances (lifecycle.rs:58-130; the ephemeral brain.rs:254-275) are LOST on restart → a post-restart live endpoint gets no livehost → its Psyche is never (re)hosted and new spawns die / can't attach until a FULL daemon reset (operator: perri's brain kill+restart wedged everything until a full daemon kill). FIX: on brain startup, rebuild a BrainLifecycle per resumed live-capable session — load the manifest from the adapter registry → instantiate → start the pulse — the rehydrate the resume no-op cannot do. Composes with B2 (the reconcile re-hosts from the honest on-disk status after rehydrate). (v0.12.0)",
2026-06-18T11:18:00.0112310Z       "requiredStages": [],
2026-06-18T11:18:00.0112409Z       "stages": {
2026-06-18T11:18:00.0112501Z         "doc": {
2026-06-18T11:18:00.0112592Z           "complete": false,
2026-06-18T11:18:00.0112681Z           "evidence": []
2026-06-18T11:18:00.0112767Z         },
2026-06-18T11:18:00.0112849Z         "impl": {
2026-06-18T11:18:00.0112949Z           "complete": false,
2026-06-18T11:18:00.0113143Z           "evidence": []
2026-06-18T11:18:00.0113224Z         },
2026-06-18T11:18:00.0113308Z         "int": {
2026-06-18T11:18:00.0113403Z           "complete": false,
2026-06-18T11:18:00.0113484Z           "evidence": []
2026-06-18T11:18:00.0113570Z         },
2026-06-18T11:18:00.0113655Z         "unit": {
2026-06-18T11:18:00.0113750Z           "complete": false,
2026-06-18T11:18:00.0113838Z           "evidence": []
2026-06-18T11:18:00.0113923Z         }
2026-06-18T11:18:00.0114018Z       }
2026-06-18T11:18:00.0114099Z     },
2026-06-18T11:18:00.0114176Z     {
2026-06-18T11:18:00.0114318Z       "id": "REQ-HAZARD-BRAIN-RESTART-PSYCHE-DUP",
2026-06-18T11:18:00.0118019Z       "title": "A bare brain restart leaves EXACTLY ONE `{id}-psyche` process per endpoint — no duplicate. On an abrupt brain death stop_host never runs (the LiveSet + owned child handles die with the brain) and Breap's job/group only reaps at DAEMON stop, so the PRIOR brain's Psyche stays ALIVE; the respawned brain's reconcile re-hosts a SECOND Psyche and overwrites the `{id}-psyche` perch pid, leaving the old one untracked + alive = a duplicate that lingers until daemon-stop (the operator's 'brain kill+restart wedged everything'). FIX: at brain start, BEFORE the first reconcile re-hosts, reap any pre-existing `{id}-psyche` orphan — ID-SPECIFICALLY (recycle-safe on the shared box, where sibling agents share the `claude` basename): scoped-kill the recorded pid ONLY IF it is alive AND its exe basename == the adapter's psyche program (normalize_basename) AND its COMMAND LINE contains the full psyche id `<id>-psyche` (baked via {id}); a sibling never carries THIS id, and any unreadable signal FAILS SAFE (decline to reap — a missed dup is bounded by Breap, a wrong-kill is catastrophic). CAVEAT: the cmdline carries `<id>-psyche` only when the adapter's psyche_init.command uses {id} (the norm); a non-{id} adapter safely MISSES the reap (today's behavior, Breap bounds it) — never a wrong-kill. (v0.12.0)",
2026-06-18T11:18:00.0118146Z       "requiredStages": [
2026-06-18T11:18:00.0118226Z         "impl",
2026-06-18T11:18:00.0118312Z         "unit",
2026-06-18T11:18:00.0118392Z         "int"
2026-06-18T11:18:00.0118486Z       ],
2026-06-18T11:18:00.0118572Z       "stages": {
2026-06-18T11:18:00.0118658Z         "doc": {
2026-06-18T11:18:00.0118749Z           "complete": false,
2026-06-18T11:18:00.0118843Z           "evidence": []
2026-06-18T11:18:00.0118925Z         },
2026-06-18T11:18:00.0119492Z         "impl": {
2026-06-18T11:18:00.0119584Z           "complete": true,
2026-06-18T11:18:00.0119674Z           "evidence": [
2026-06-18T11:18:00.0119755Z             {
2026-06-18T11:18:00.0119884Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0119974Z               "line": 558
2026-06-18T11:18:00.0120051Z             },
2026-06-18T11:18:00.0120140Z             {
2026-06-18T11:18:00.0120266Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0120350Z               "line": 582
2026-06-18T11:18:00.0120436Z             },
2026-06-18T11:18:00.0120519Z             {
2026-06-18T11:18:00.0120642Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0120737Z               "line": 608
2026-06-18T11:18:00.0120814Z             },
2026-06-18T11:18:00.0120900Z             {
2026-06-18T11:18:00.0121008Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0121098Z               "line": 667
2026-06-18T11:18:00.0121184Z             },
2026-06-18T11:18:00.0121274Z             {
2026-06-18T11:18:00.0121396Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T11:18:00.0121487Z               "line": 89
2026-06-18T11:18:00.0121587Z             },
2026-06-18T11:18:00.0121668Z             {
2026-06-18T11:18:00.0121782Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T11:18:00.0121874Z               "line": 134
2026-06-18T11:18:00.0121964Z             }
2026-06-18T11:18:00.0122044Z           ]
2026-06-18T11:18:00.0122231Z         },
2026-06-18T11:18:00.0122330Z         "int": {
2026-06-18T11:18:00.0122417Z           "complete": true,
2026-06-18T11:18:00.0122508Z           "evidence": [
2026-06-18T11:18:00.0122593Z             {
2026-06-18T11:18:00.0122751Z               "path": "crates/spt/tests/brain_restart_psyche_dup_e2e.rs",
2026-06-18T11:18:00.0122832Z               "line": 20
2026-06-18T11:18:00.0122912Z             }
2026-06-18T11:18:00.0122993Z           ]
2026-06-18T11:18:00.0123085Z         },
2026-06-18T11:18:00.0123185Z         "unit": {
2026-06-18T11:18:00.0123270Z           "complete": true,
2026-06-18T11:18:00.0123366Z           "evidence": [
2026-06-18T11:18:00.0123448Z             {
2026-06-18T11:18:00.0123664Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0123760Z               "line": 988
2026-06-18T11:18:00.0123845Z             },
2026-06-18T11:18:00.0123930Z             {
2026-06-18T11:18:00.0124039Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T11:18:00.0124135Z               "line": 445
2026-06-18T11:18:00.0124225Z             }
2026-06-18T11:18:00.0124301Z           ]
2026-06-18T11:18:00.0124393Z         }
2026-06-18T11:18:00.0124473Z       }
2026-06-18T11:18:00.0124558Z     },
2026-06-18T11:18:00.0124644Z     {
2026-06-18T11:18:00.0124769Z       "id": "REQ-HAZARD-BROKER-PROCESS-ISOLATION",
2026-06-18T11:18:00.0127286Z       "title": "Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).",
2026-06-18T11:18:00.0127400Z       "requiredStages": [
2026-06-18T11:18:00.0127481Z         "doc",
2026-06-18T11:18:00.0127577Z         "impl",
2026-06-18T11:18:00.0127653Z         "unit",
2026-06-18T11:18:00.0127743Z         "int"
2026-06-18T11:18:00.0127833Z       ],
2026-06-18T11:18:00.0127912Z       "stages": {
2026-06-18T11:18:00.0127996Z         "doc": {
2026-06-18T11:18:00.0128082Z           "complete": true,
2026-06-18T11:18:00.0128183Z           "evidence": [
2026-06-18T11:18:00.0128264Z             {
2026-06-18T11:18:00.0128377Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T11:18:00.0128468Z               "line": 302
2026-06-18T11:18:00.0128555Z             }
2026-06-18T11:18:00.0128644Z           ]
2026-06-18T11:18:00.0128715Z         },
2026-06-18T11:18:00.0128805Z         "impl": {
2026-06-18T11:18:00.0128896Z           "complete": true,
2026-06-18T11:18:00.0129051Z           "evidence": [
2026-06-18T11:18:00.0129137Z             {
2026-06-18T11:18:00.0129262Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T11:18:00.0129361Z               "line": 108
2026-06-18T11:18:00.0129447Z             },
2026-06-18T11:18:00.0129533Z             {
2026-06-18T11:18:00.0129652Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T11:18:00.0129742Z               "line": 795
2026-06-18T11:18:00.0129829Z             },
2026-06-18T11:18:00.0129915Z             {
2026-06-18T11:18:00.0130028Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T11:18:00.0130125Z               "line": 995
2026-06-18T11:18:00.0130210Z             },
2026-06-18T11:18:00.0130291Z             {
2026-06-18T11:18:00.0130415Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0130511Z               "line": 23
2026-06-18T11:18:00.0130591Z             },
2026-06-18T11:18:00.0130783Z             {
2026-06-18T11:18:00.0130897Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0130996Z               "line": 113
2026-06-18T11:18:00.0131079Z             },
2026-06-18T11:18:00.0131169Z             {
2026-06-18T11:18:00.0131293Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0131374Z               "line": 158
2026-06-18T11:18:00.0131460Z             },
2026-06-18T11:18:00.0131549Z             {
2026-06-18T11:18:00.0131668Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0131749Z               "line": 218
2026-06-18T11:18:00.0131838Z             },
2026-06-18T11:18:00.0132023Z             {
2026-06-18T11:18:00.0132133Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0132233Z               "line": 261
2026-06-18T11:18:00.0132314Z             },
2026-06-18T11:18:00.0132405Z             {
2026-06-18T11:18:00.0132529Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0132609Z               "line": 275
2026-06-18T11:18:00.0132692Z             },
2026-06-18T11:18:00.0132772Z             {
2026-06-18T11:18:00.0132895Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0132986Z               "line": 320
2026-06-18T11:18:00.0133078Z             },
2026-06-18T11:18:00.0133163Z             {
2026-06-18T11:18:00.0133273Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0133369Z               "line": 347
2026-06-18T11:18:00.0133444Z             },
2026-06-18T11:18:00.0133530Z             {
2026-06-18T11:18:00.0133646Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0133745Z               "line": 359
2026-06-18T11:18:00.0133835Z             },
2026-06-18T11:18:00.0133917Z             {
2026-06-18T11:18:00.0134041Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0134120Z               "line": 373
2026-06-18T11:18:00.0134215Z             },
2026-06-18T11:18:00.0134296Z             {
2026-06-18T11:18:00.0134419Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0134518Z               "line": 400
2026-06-18T11:18:00.0134600Z             },
2026-06-18T11:18:00.0134686Z             {
2026-06-18T11:18:00.0134804Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0134895Z               "line": 643
2026-06-18T11:18:00.0134977Z             },
2026-06-18T11:18:00.0135068Z             {
2026-06-18T11:18:00.0135181Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0135277Z               "line": 989
2026-06-18T11:18:00.0135367Z             },
2026-06-18T11:18:00.0135447Z             {
2026-06-18T11:18:00.0135573Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.0135654Z               "line": 179
2026-06-18T11:18:00.0135749Z             },
2026-06-18T11:18:00.0135839Z             {
2026-06-18T11:18:00.0135955Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.0136064Z               "line": 591
2026-06-18T11:18:00.0136149Z             },
2026-06-18T11:18:00.0136241Z             {
2026-06-18T11:18:00.0136353Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.0136445Z               "line": 663
2026-06-18T11:18:00.0136527Z             },
2026-06-18T11:18:00.0136608Z             {
2026-06-18T11:18:00.0136726Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.0136803Z               "line": 675
2026-06-18T11:18:00.0136885Z             },
2026-06-18T11:18:00.0136978Z             {
2026-06-18T11:18:00.0137092Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.0137193Z               "line": 1159
2026-06-18T11:18:00.0137275Z             },
2026-06-18T11:18:00.0137364Z             {
2026-06-18T11:18:00.0137474Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:18:00.0137565Z               "line": 183
2026-06-18T11:18:00.0137721Z             },
2026-06-18T11:18:00.0137803Z             {
2026-06-18T11:18:00.0137922Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:18:00.0138017Z               "line": 260
2026-06-18T11:18:00.0138103Z             },
2026-06-18T11:18:00.0138185Z             {
2026-06-18T11:18:00.0138303Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:18:00.0138384Z               "line": 271
2026-06-18T11:18:00.0138476Z             },
2026-06-18T11:18:00.0138556Z             {
2026-06-18T11:18:00.0138670Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:18:00.0138767Z               "line": 324
2026-06-18T11:18:00.0138932Z             },
2026-06-18T11:18:00.0139106Z             {
2026-06-18T11:18:00.0139228Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T11:18:00.0139313Z               "line": 56
2026-06-18T11:18:00.0139403Z             },
2026-06-18T11:18:00.0139475Z             {
2026-06-18T11:18:00.0139597Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T11:18:00.0139687Z               "line": 188
2026-06-18T11:18:00.0139769Z             },
2026-06-18T11:18:00.0139855Z             {
2026-06-18T11:18:00.0139963Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-18T11:18:00.0140065Z               "line": 82
2026-06-18T11:18:00.0140151Z             },
2026-06-18T11:18:00.0140231Z             {
2026-06-18T11:18:00.0140341Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.0140432Z               "line": 308
2026-06-18T11:18:00.0140517Z             },
2026-06-18T11:18:00.0140598Z             {
2026-06-18T11:18:00.0140714Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.0140813Z               "line": 424
2026-06-18T11:18:00.0140898Z             },
2026-06-18T11:18:00.0140975Z             {
2026-06-18T11:18:00.0141080Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0141175Z               "line": 1884
2026-06-18T11:18:00.0141260Z             }
2026-06-18T11:18:00.0141339Z           ]
2026-06-18T11:18:00.0141419Z         },
2026-06-18T11:18:00.0141504Z         "int": {
2026-06-18T11:18:00.0141595Z           "complete": true,
2026-06-18T11:18:00.0141677Z           "evidence": [
2026-06-18T11:18:00.0141776Z             {
2026-06-18T11:18:00.0141890Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-18T11:18:00.0141983Z               "line": 57
2026-06-18T11:18:00.0142067Z             },
2026-06-18T11:18:00.0142157Z             {
2026-06-18T11:18:00.0142266Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-18T11:18:00.0142356Z               "line": 41
2026-06-18T11:18:00.0142445Z             }
2026-06-18T11:18:00.0142525Z           ]
2026-06-18T11:18:00.0142617Z         },
2026-06-18T11:18:00.0142703Z         "unit": {
2026-06-18T11:18:00.0142798Z           "complete": true,
2026-06-18T11:18:00.0142884Z           "evidence": [
2026-06-18T11:18:00.0142970Z             {
2026-06-18T11:18:00.0143098Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T11:18:00.0143193Z               "line": 532
2026-06-18T11:18:00.0143275Z             },
2026-06-18T11:18:00.0143352Z             {
2026-06-18T11:18:00.0143479Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T11:18:00.0143571Z               "line": 756
2026-06-18T11:18:00.0143657Z             },
2026-06-18T11:18:00.0143742Z             {
2026-06-18T11:18:00.0143861Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0143948Z               "line": 1067
2026-06-18T11:18:00.0144032Z             },
2026-06-18T11:18:00.0144114Z             {
2026-06-18T11:18:00.0144243Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0144338Z               "line": 1101
2026-06-18T11:18:00.0144428Z             },
2026-06-18T11:18:00.0144511Z             {
2026-06-18T11:18:00.0144630Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0144713Z               "line": 1143
2026-06-18T11:18:00.0144909Z             },
2026-06-18T11:18:00.0144993Z             {
2026-06-18T11:18:00.0145112Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0145212Z               "line": 1215
2026-06-18T11:18:00.0145290Z             },
2026-06-18T11:18:00.0145378Z             {
2026-06-18T11:18:00.0145484Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0145589Z               "line": 1228
2026-06-18T11:18:00.0145670Z             },
2026-06-18T11:18:00.0145751Z             {
2026-06-18T11:18:00.0145880Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0146060Z               "line": 1251
2026-06-18T11:18:00.0146152Z             },
2026-06-18T11:18:00.0146228Z             {
2026-06-18T11:18:00.0146356Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0146448Z               "line": 1277
2026-06-18T11:18:00.0146533Z             },
2026-06-18T11:18:00.0146629Z             {
2026-06-18T11:18:00.0146748Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0146844Z               "line": 1291
2026-06-18T11:18:00.0146928Z             },
2026-06-18T11:18:00.0147014Z             {
2026-06-18T11:18:00.0147140Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0147228Z               "line": 1315
2026-06-18T11:18:00.0147310Z             },
2026-06-18T11:18:00.0147397Z             {
2026-06-18T11:18:00.0147525Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0147614Z               "line": 1447
2026-06-18T11:18:00.0147700Z             },
2026-06-18T11:18:00.0147796Z             {
2026-06-18T11:18:00.0147910Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0148005Z               "line": 1623
2026-06-18T11:18:00.0148082Z             },
2026-06-18T11:18:00.0148168Z             {
2026-06-18T11:18:00.0148291Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0148383Z               "line": 1678
2026-06-18T11:18:00.0148468Z             },
2026-06-18T11:18:00.0148553Z             {
2026-06-18T11:18:00.0148673Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0148755Z               "line": 1724
2026-06-18T11:18:00.0148845Z             },
2026-06-18T11:18:00.0148930Z             {
2026-06-18T11:18:00.0149125Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0149216Z               "line": 1769
2026-06-18T11:18:00.0149303Z             },
2026-06-18T11:18:00.0149394Z             {
2026-06-18T11:18:00.0149502Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0149607Z               "line": 1813
2026-06-18T11:18:00.0152336Z             },
2026-06-18T11:18:00.0152446Z             {
2026-06-18T11:18:00.0152590Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0152684Z               "line": 1855
2026-06-18T11:18:00.0152768Z             },
2026-06-18T11:18:00.0152865Z             {
2026-06-18T11:18:00.0152991Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.0153085Z               "line": 1493
2026-06-18T11:18:00.0153162Z             },
2026-06-18T11:18:00.0153254Z             {
2026-06-18T11:18:00.0153367Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T11:18:00.0153463Z               "line": 217
2026-06-18T11:18:00.0153549Z             },
2026-06-18T11:18:00.0153635Z             {
2026-06-18T11:18:00.0153763Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T11:18:00.0153850Z               "line": 233
2026-06-18T11:18:00.0153935Z             },
2026-06-18T11:18:00.0154021Z             {
2026-06-18T11:18:00.0154151Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T11:18:00.0154231Z               "line": 254
2026-06-18T11:18:00.0154321Z             },
2026-06-18T11:18:00.0154407Z             {
2026-06-18T11:18:00.0154522Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T11:18:00.0154818Z               "line": 265
2026-06-18T11:18:00.0154903Z             },
2026-06-18T11:18:00.0154984Z             {
2026-06-18T11:18:00.0155100Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T11:18:00.0155185Z               "line": 278
2026-06-18T11:18:00.0155274Z             },
2026-06-18T11:18:00.0155359Z             {
2026-06-18T11:18:00.0155479Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T11:18:00.0155563Z               "line": 289
2026-06-18T11:18:00.0155652Z             },
2026-06-18T11:18:00.0155734Z             {
2026-06-18T11:18:00.0155850Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T11:18:00.0156039Z               "line": 301
2026-06-18T11:18:00.0156116Z             },
2026-06-18T11:18:00.0156211Z             {
2026-06-18T11:18:00.0156325Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T11:18:00.0156421Z               "line": 312
2026-06-18T11:18:00.0156521Z             },
2026-06-18T11:18:00.0156596Z             {
2026-06-18T11:18:00.0156703Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T11:18:00.0156784Z               "line": 323
2026-06-18T11:18:00.0156869Z             },
2026-06-18T11:18:00.0156955Z             {
2026-06-18T11:18:00.0157070Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T11:18:00.0157160Z               "line": 332
2026-06-18T11:18:00.0157245Z             },
2026-06-18T11:18:00.0157333Z             {
2026-06-18T11:18:00.0157446Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T11:18:00.0157541Z               "line": 342
2026-06-18T11:18:00.0157633Z             },
2026-06-18T11:18:00.0157714Z             {
2026-06-18T11:18:00.0157832Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T11:18:00.0157918Z               "line": 358
2026-06-18T11:18:00.0158000Z             },
2026-06-18T11:18:00.0158080Z             {
2026-06-18T11:18:00.0158207Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.0158289Z               "line": 758
2026-06-18T11:18:00.0158375Z             },
2026-06-18T11:18:00.0158460Z             {
2026-06-18T11:18:00.0158579Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.0158671Z               "line": 794
2026-06-18T11:18:00.0158743Z             },
2026-06-18T11:18:00.0158832Z             {
2026-06-18T11:18:00.0159018Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.0159113Z               "line": 966
2026-06-18T11:18:00.0159195Z             },
2026-06-18T11:18:00.0159277Z             {
2026-06-18T11:18:00.0159405Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-18T11:18:00.0159495Z               "line": 144
2026-06-18T11:18:00.0159582Z             },
2026-06-18T11:18:00.0159662Z             {
2026-06-18T11:18:00.0159781Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-18T11:18:00.0159878Z               "line": 223
2026-06-18T11:18:00.0159963Z             },
2026-06-18T11:18:00.0160052Z             {
2026-06-18T11:18:00.0160158Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-18T11:18:00.0160250Z               "line": 292
2026-06-18T11:18:00.0160329Z             },
2026-06-18T11:18:00.0160415Z             {
2026-06-18T11:18:00.0160533Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-18T11:18:00.0160614Z               "line": 17
2026-06-18T11:18:00.0160698Z             },
2026-06-18T11:18:00.0160783Z             {
2026-06-18T11:18:00.0160899Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-18T11:18:00.0160985Z               "line": 104
2026-06-18T11:18:00.0161065Z             }
2026-06-18T11:18:00.0161146Z           ]
2026-06-18T11:18:00.0161233Z         }
2026-06-18T11:18:00.0161314Z       }
2026-06-18T11:18:00.0161394Z     },
2026-06-18T11:18:00.0161480Z     {
2026-06-18T11:18:00.0161604Z       "id": "REQ-HAZARD-BROKER-QUIC-DEADLINE",
2026-06-18T11:18:00.0164691Z       "title": "The broker bounds every brain-waiting QUIC op (dial / open_stream / send_stream) so a black-holed or dead peer fails PROMPTLY with an ORDINARY error the broker REPLIES, never an unbounded await. The bound (< the brain's 30s PUMP_PEER_IO_TIMEOUT so the BROKER fires first) surfaces to the pump as a normal broker error reply → peer_outcome's non-TimedOut arm → drop conn + redial next tick, the round CONTINUES and the heartbeat keeps advancing — it must NEVER manifest as the brain's own read-deadline (the A-half poison → supervised-restart path REQ-HAZARD-PUMP-IPC-DEADLINE guards). Exactly-once is preserved: a timed-out journaled op fails INSIDE its apply_once closure so no phantom conn_id/stream_id is recorded and a fresh tick re-dials cleanly. The happy path is unchanged (a live peer completes with zero added latency; the bound only bites a non-responsive peer). This is the ROOT-cause cure for the 2.2h hfenduleam pump wedge — a dead roster peer whose QUIC path the broker awaited unbounded — recurring on hfenduleam 2026-06-16.",
2026-06-18T11:18:00.0164924Z       "requiredStages": [
2026-06-18T11:18:00.0165011Z         "doc",
2026-06-18T11:18:00.0165092Z         "impl",
2026-06-18T11:18:00.0165172Z         "unit",
2026-06-18T11:18:00.0165253Z         "int"
2026-06-18T11:18:00.0165336Z       ],
2026-06-18T11:18:00.0165421Z       "stages": {
2026-06-18T11:18:00.0165505Z         "doc": {
2026-06-18T11:18:00.0165592Z           "complete": true,
2026-06-18T11:18:00.0165674Z           "evidence": [
2026-06-18T11:18:00.0165759Z             {
2026-06-18T11:18:00.0165872Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T11:18:00.0165967Z               "line": 388
2026-06-18T11:18:00.0166057Z             }
2026-06-18T11:18:00.0166142Z           ]
2026-06-18T11:18:00.0166232Z         },
2026-06-18T11:18:00.0166318Z         "impl": {
2026-06-18T11:18:00.0166410Z           "complete": true,
2026-06-18T11:18:00.0166494Z           "evidence": [
2026-06-18T11:18:00.0166571Z             {
2026-06-18T11:18:00.0166710Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:18:00.0166799Z               "line": 773
2026-06-18T11:18:00.0166880Z             },
2026-06-18T11:18:00.0166962Z             {
2026-06-18T11:18:00.0167081Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:18:00.0167166Z               "line": 796
2026-06-18T11:18:00.0167249Z             }
2026-06-18T11:18:00.0167339Z           ]
2026-06-18T11:18:00.0167420Z         },
2026-06-18T11:18:00.0167505Z         "int": {
2026-06-18T11:18:00.0167597Z           "complete": true,
2026-06-18T11:18:00.0167691Z           "evidence": [
2026-06-18T11:18:00.0167763Z             {
2026-06-18T11:18:00.0167902Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-18T11:18:00.0167996Z               "line": 228
2026-06-18T11:18:00.0168078Z             },
2026-06-18T11:18:00.0168164Z             {
2026-06-18T11:18:00.0168283Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-18T11:18:00.0168382Z               "line": 468
2026-06-18T11:18:00.0168459Z             }
2026-06-18T11:18:00.0168546Z           ]
2026-06-18T11:18:00.0168636Z         },
2026-06-18T11:18:00.0168725Z         "unit": {
2026-06-18T11:18:00.0168825Z           "complete": true,
2026-06-18T11:18:00.0168917Z           "evidence": [
2026-06-18T11:18:00.0169063Z             {
2026-06-18T11:18:00.0169174Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:18:00.0169278Z               "line": 1495
2026-06-18T11:18:00.0169359Z             }
2026-06-18T11:18:00.0169440Z           ]
2026-06-18T11:18:00.0169517Z         }
2026-06-18T11:18:00.0169597Z       }
2026-06-18T11:18:00.0169688Z     },
2026-06-18T11:18:00.0169769Z     {
2026-06-18T11:18:00.0169884Z       "id": "REQ-HAZARD-BROKER-SEED-WIRE-SKEW",
2026-06-18T11:18:00.0173542Z       "title": "A daemon-state wire-format change (e.g. the v0.9.0 adapter-agnostic Seed) does NOT take effect until a DELIBERATE full broker restart: the broker serves the seed-control channel and is RESIDENT across a brain-only self-update (ADR-0004 no-terminate-during-update forbids auto-killing it), so a NEW-version CLI talking to a still-resident OLD broker fails the seed handshake — the old broker cannot deserialize the new Seed (its formerly-required `adapter` field is gone) and drops the conn without an ack, which surfaces to the CLI as a raw UnexpectedEof 'failed to fill whole buffer'. spt-core must (a) surface an ACTIONABLE diagnostic on that seed-ack EOF (name the stale-broker cause + the `spt daemon stop` fix — the broker restarts on the next api call), never the cryptic io error; and (b) document the operational rule (a deliberate broker restart is required on any daemon-state wire change — NOT automatic) + the FORWARD discipline (daemon-state/Seed schema changes stay additive + serde-default so a resident OLD broker tolerates a NEW CLI across a brain-only update; note this would NOT have rescued 0.9.0 itself, since the old broker's `adapter` was a required field). perri PREP-4 FINDING 1 (v0.9.0 CLI vs stale 0.8.x broker).",
2026-06-18T11:18:00.0173879Z       "requiredStages": [
2026-06-18T11:18:00.0173970Z         "doc",
2026-06-18T11:18:00.0174065Z         "impl",
2026-06-18T11:18:00.0174144Z         "unit"
2026-06-18T11:18:00.0174229Z       ],
2026-06-18T11:18:00.0174321Z       "stages": {
2026-06-18T11:18:00.0174398Z         "doc": {
2026-06-18T11:18:00.0174497Z           "complete": true,
2026-06-18T11:18:00.0174588Z           "evidence": [
2026-06-18T11:18:00.0174669Z             {
2026-06-18T11:18:00.0174774Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T11:18:00.0174868Z               "line": 395
2026-06-18T11:18:00.0174951Z             }
2026-06-18T11:18:00.0175046Z           ]
2026-06-18T11:18:00.0175121Z         },
2026-06-18T11:18:00.0175213Z         "impl": {
2026-06-18T11:18:00.0175304Z           "complete": true,
2026-06-18T11:18:00.0175389Z           "evidence": [
2026-06-18T11:18:00.0175475Z             {
2026-06-18T11:18:00.0175600Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.0175694Z               "line": 75
2026-06-18T11:18:00.0175780Z             }
2026-06-18T11:18:00.0175862Z           ]
2026-06-18T11:18:00.0175952Z         },
2026-06-18T11:18:00.0176032Z         "int": {
2026-06-18T11:18:00.0176133Z           "complete": false,
2026-06-18T11:18:00.0176225Z           "evidence": []
2026-06-18T11:18:00.0176300Z         },
2026-06-18T11:18:00.0176385Z         "unit": {
2026-06-18T11:18:00.0176475Z           "complete": true,
2026-06-18T11:18:00.0176571Z           "evidence": [
2026-06-18T11:18:00.0176645Z             {
2026-06-18T11:18:00.0176763Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.0176864Z               "line": 601
2026-06-18T11:18:00.0176950Z             }
2026-06-18T11:18:00.0177021Z           ]
2026-06-18T11:18:00.0177101Z         }
2026-06-18T11:18:00.0177194Z       }
2026-06-18T11:18:00.0177274Z     },
2026-06-18T11:18:00.0177359Z     {
2026-06-18T11:18:00.0177479Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-18T11:18:00.0177665Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-18T11:18:00.0177765Z       "requiredStages": [
2026-06-18T11:18:00.0177842Z         "impl",
2026-06-18T11:18:00.0177937Z         "unit"
2026-06-18T11:18:00.0178017Z       ],
2026-06-18T11:18:00.0178108Z       "stages": {
2026-06-18T11:18:00.0178195Z         "doc": {
2026-06-18T11:18:00.0178290Z           "complete": false,
2026-06-18T11:18:00.0178380Z           "evidence": []
2026-06-18T11:18:00.0178463Z         },
2026-06-18T11:18:00.0178552Z         "impl": {
2026-06-18T11:18:00.0178633Z           "complete": true,
2026-06-18T11:18:00.0178734Z           "evidence": [
2026-06-18T11:18:00.0178820Z             {
2026-06-18T11:18:00.0179005Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.0179097Z               "line": 168
2026-06-18T11:18:00.0179182Z             },
2026-06-18T11:18:00.0179271Z             {
2026-06-18T11:18:00.0179380Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T11:18:00.0179576Z               "line": 18
2026-06-18T11:18:00.0179661Z             },
2026-06-18T11:18:00.0179743Z             {
2026-06-18T11:18:00.0179858Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T11:18:00.0179942Z               "line": 100
2026-06-18T11:18:00.0180024Z             }
2026-06-18T11:18:00.0180101Z           ]
2026-06-18T11:18:00.0180182Z         },
2026-06-18T11:18:00.0180262Z         "int": {
2026-06-18T11:18:00.0180348Z           "complete": false,
2026-06-18T11:18:00.0180439Z           "evidence": []
2026-06-18T11:18:00.0180530Z         },
2026-06-18T11:18:00.0180620Z         "unit": {
2026-06-18T11:18:00.0180806Z           "complete": true,
2026-06-18T11:18:00.0180897Z           "evidence": [
2026-06-18T11:18:00.0180973Z             {
2026-06-18T11:18:00.0181093Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.0181177Z               "line": 853
2026-06-18T11:18:00.0181259Z             },
2026-06-18T11:18:00.0181346Z             {
2026-06-18T11:18:00.0181454Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T11:18:00.0181549Z               "line": 161
2026-06-18T11:18:00.0181644Z             },
2026-06-18T11:18:00.0181725Z             {
2026-06-18T11:18:00.0181842Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T11:18:00.0181923Z               "line": 233
2026-06-18T11:18:00.0182004Z             }
2026-06-18T11:18:00.0182087Z           ]
2026-06-18T11:18:00.0182166Z         }
2026-06-18T11:18:00.0182257Z       }
2026-06-18T11:18:00.0182339Z     },
2026-06-18T11:18:00.0182415Z     {
2026-06-18T11:18:00.0182533Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-18T11:18:00.0182954Z       "title": "Console-subsystem children of the console-less daemon spawn with CREATE_NO_WINDOW, or each spawn flashes a visible blank window on the user's desktop (5.8)",
2026-06-18T11:18:00.0183058Z       "requiredStages": [
2026-06-18T11:18:00.0183148Z         "impl",
2026-06-18T11:18:00.0183250Z         "unit"
2026-06-18T11:18:00.0183331Z       ],
2026-06-18T11:18:00.0183407Z       "stages": {
2026-06-18T11:18:00.0183487Z         "doc": {
2026-06-18T11:18:00.0183588Z           "complete": true,
2026-06-18T11:18:00.0183678Z           "evidence": [
2026-06-18T11:18:00.0183759Z             {
2026-06-18T11:18:00.0183870Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T11:18:00.0183956Z               "line": 220
2026-06-18T11:18:00.0184035Z             }
2026-06-18T11:18:00.0184112Z           ]
2026-06-18T11:18:00.0184194Z         },
2026-06-18T11:18:00.0184285Z         "impl": {
2026-06-18T11:18:00.0184364Z           "complete": true,
2026-06-18T11:18:00.0184454Z           "evidence": [
2026-06-18T11:18:00.0184530Z             {
2026-06-18T11:18:00.0184658Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.0184742Z               "line": 315
2026-06-18T11:18:00.0184819Z             },
2026-06-18T11:18:00.0184896Z             {
2026-06-18T11:18:00.0185019Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0185105Z               "line": 356
2026-06-18T11:18:00.0185187Z             },
2026-06-18T11:18:00.0185272Z             {
2026-06-18T11:18:00.0185376Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0185473Z               "line": 578
2026-06-18T11:18:00.0185549Z             },
2026-06-18T11:18:00.0185635Z             {
2026-06-18T11:18:00.0185748Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-18T11:18:00.0185840Z               "line": 77
2026-06-18T11:18:00.0185925Z             }
2026-06-18T11:18:00.0186011Z           ]
2026-06-18T11:18:00.0186102Z         },
2026-06-18T11:18:00.0186193Z         "int": {
2026-06-18T11:18:00.0186287Z           "complete": false,
2026-06-18T11:18:00.0186374Z           "evidence": []
2026-06-18T11:18:00.0186446Z         },
2026-06-18T11:18:00.0186536Z         "unit": {
2026-06-18T11:18:00.0186616Z           "complete": true,
2026-06-18T11:18:00.0186785Z           "evidence": [
2026-06-18T11:18:00.0186865Z             {
2026-06-18T11:18:00.0186987Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0187068Z               "line": 747
2026-06-18T11:18:00.0187149Z             },
2026-06-18T11:18:00.0187229Z             {
2026-06-18T11:18:00.0187342Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0187429Z               "line": 785
2026-06-18T11:18:00.0187515Z             },
2026-06-18T11:18:00.0187596Z             {
2026-06-18T11:18:00.0187719Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-18T11:18:00.0187801Z               "line": 166
2026-06-18T11:18:00.0187962Z             }
2026-06-18T11:18:00.0188039Z           ]
2026-06-18T11:18:00.0188125Z         }
2026-06-18T11:18:00.0188211Z       }
2026-06-18T11:18:00.0188291Z     },
2026-06-18T11:18:00.0188369Z     {
2026-06-18T11:18:00.0188492Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-18T11:18:00.0189126Z       "title": "A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)",
2026-06-18T11:18:00.0189231Z       "requiredStages": [
2026-06-18T11:18:00.0189318Z         "impl",
2026-06-18T11:18:00.0189399Z         "unit"
2026-06-18T11:18:00.0189483Z       ],
2026-06-18T11:18:00.0189570Z       "stages": {
2026-06-18T11:18:00.0189652Z         "doc": {
2026-06-18T11:18:00.0189751Z           "complete": false,
2026-06-18T11:18:00.0189845Z           "evidence": []
2026-06-18T11:18:00.0189931Z         },
2026-06-18T11:18:00.0190032Z         "impl": {
2026-06-18T11:18:00.0190122Z           "complete": true,
2026-06-18T11:18:00.0190216Z           "evidence": [
2026-06-18T11:18:00.0190299Z             {
2026-06-18T11:18:00.0190428Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-18T11:18:00.0190512Z               "line": 22
2026-06-18T11:18:00.0190594Z             },
2026-06-18T11:18:00.0190680Z             {
2026-06-18T11:18:00.0190799Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T11:18:00.0190894Z               "line": 487
2026-06-18T11:18:00.0190981Z             },
2026-06-18T11:18:00.0191075Z             {
2026-06-18T11:18:00.0191204Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-18T11:18:00.0191286Z               "line": 17
2026-06-18T11:18:00.0191371Z             },
2026-06-18T11:18:00.0191447Z             {
2026-06-18T11:18:00.0191573Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-18T11:18:00.0191667Z               "line": 147
2026-06-18T11:18:00.0191757Z             },
2026-06-18T11:18:00.0191843Z             {
2026-06-18T11:18:00.0191972Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.0192066Z               "line": 226
2026-06-18T11:18:00.0192147Z             },
2026-06-18T11:18:00.0192228Z             {
2026-06-18T11:18:00.0192346Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.0192445Z               "line": 251
2026-06-18T11:18:00.0192531Z             },
2026-06-18T11:18:00.0192608Z             {
2026-06-18T11:18:00.0192721Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.0192812Z               "line": 277
2026-06-18T11:18:00.0192899Z             },
2026-06-18T11:18:00.0192985Z             {
2026-06-18T11:18:00.0193108Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-18T11:18:00.0193204Z               "line": 124
2026-06-18T11:18:00.0193284Z             },
2026-06-18T11:18:00.0193370Z             {
2026-06-18T11:18:00.0193486Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-18T11:18:00.0193590Z               "line": 224
2026-06-18T11:18:00.0193671Z             }
2026-06-18T11:18:00.0193757Z           ]
2026-06-18T11:18:00.0193843Z         },
2026-06-18T11:18:00.0193923Z         "int": {
2026-06-18T11:18:00.0194018Z           "complete": false,
2026-06-18T11:18:00.0194215Z           "evidence": []
2026-06-18T11:18:00.0194305Z         },
2026-06-18T11:18:00.0194386Z         "unit": {
2026-06-18T11:18:00.0194487Z           "complete": true,
2026-06-18T11:18:00.0194576Z           "evidence": [
2026-06-18T11:18:00.0194648Z             {
2026-06-18T11:18:00.0194769Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-18T11:18:00.0194859Z               "line": 63
2026-06-18T11:18:00.0194952Z             },
2026-06-18T11:18:00.0195028Z             {
2026-06-18T11:18:00.0195148Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-18T11:18:00.0195241Z               "line": 73
2026-06-18T11:18:00.0195413Z             },
2026-06-18T11:18:00.0195499Z             {
2026-06-18T11:18:00.0195617Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-18T11:18:00.0195713Z               "line": 85
2026-06-18T11:18:00.0195795Z             },
2026-06-18T11:18:00.0195880Z             {
2026-06-18T11:18:00.0196003Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-18T11:18:00.0196105Z               "line": 346
2026-06-18T11:18:00.0196195Z             },
2026-06-18T11:18:00.0196275Z             {
2026-06-18T11:18:00.0196396Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-18T11:18:00.0196490Z               "line": 281
2026-06-18T11:18:00.0196571Z             },
2026-06-18T11:18:00.0196662Z             {
2026-06-18T11:18:00.0196767Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-18T11:18:00.0196857Z               "line": 322
2026-06-18T11:18:00.0196943Z             },
2026-06-18T11:18:00.0197025Z             {
2026-06-18T11:18:00.0197143Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-18T11:18:00.0197234Z               "line": 360
2026-06-18T11:18:00.0197316Z             },
2026-06-18T11:18:00.0197397Z             {
2026-06-18T11:18:00.0197524Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.0197609Z               "line": 688
2026-06-18T11:18:00.0197700Z             },
2026-06-18T11:18:00.0197784Z             {
2026-06-18T11:18:00.0197902Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-18T11:18:00.0197999Z               "line": 397
2026-06-18T11:18:00.0198076Z             },
2026-06-18T11:18:00.0198160Z             {
2026-06-18T11:18:00.0198270Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-18T11:18:00.0198361Z               "line": 440
2026-06-18T11:18:00.0198442Z             }
2026-06-18T11:18:00.0198518Z           ]
2026-06-18T11:18:00.0198599Z         }
2026-06-18T11:18:00.0198685Z       }
2026-06-18T11:18:00.0198776Z     },
2026-06-18T11:18:00.0198856Z     {
2026-06-18T11:18:00.0199229Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-18T11:18:00.0199443Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-18T11:18:00.0199539Z       "requiredStages": [
2026-06-18T11:18:00.0199630Z         "impl",
2026-06-18T11:18:00.0199719Z         "unit"
2026-06-18T11:18:00.0199806Z       ],
2026-06-18T11:18:00.0199888Z       "stages": {
2026-06-18T11:18:00.0199977Z         "doc": {
2026-06-18T11:18:00.0200072Z           "complete": false,
2026-06-18T11:18:00.0200159Z           "evidence": []
2026-06-18T11:18:00.0200236Z         },
2026-06-18T11:18:00.0200320Z         "impl": {
2026-06-18T11:18:00.0200419Z           "complete": true,
2026-06-18T11:18:00.0200505Z           "evidence": [
2026-06-18T11:18:00.0200597Z             {
2026-06-18T11:18:00.0200715Z               "path": "crates/spt-term/src/reader.rs",
2026-06-18T11:18:00.0200796Z               "line": 169
2026-06-18T11:18:00.0200878Z             }
2026-06-18T11:18:00.0200964Z           ]
2026-06-18T11:18:00.0201049Z         },
2026-06-18T11:18:00.0201130Z         "int": {
2026-06-18T11:18:00.0201231Z           "complete": true,
2026-06-18T11:18:00.0201321Z           "evidence": [
2026-06-18T11:18:00.0201401Z             {
2026-06-18T11:18:00.0201517Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-18T11:18:00.0201735Z               "line": 44
2026-06-18T11:18:00.0201818Z             },
2026-06-18T11:18:00.0201903Z             {
2026-06-18T11:18:00.0202017Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-18T11:18:00.0202118Z               "line": 66
2026-06-18T11:18:00.0202199Z             }
2026-06-18T11:18:00.0202288Z           ]
2026-06-18T11:18:00.0202365Z         },
2026-06-18T11:18:00.0202442Z         "unit": {
2026-06-18T11:18:00.0202528Z           "complete": true,
2026-06-18T11:18:00.0202617Z           "evidence": [
2026-06-18T11:18:00.0202698Z             {
2026-06-18T11:18:00.0202807Z               "path": "crates/spt-term/src/reader.rs",
2026-06-18T11:18:00.0203005Z               "line": 186
2026-06-18T11:18:00.0203082Z             },
2026-06-18T11:18:00.0203164Z             {
2026-06-18T11:18:00.0203277Z               "path": "crates/spt-term/src/reader.rs",
2026-06-18T11:18:00.0203358Z               "line": 238
2026-06-18T11:18:00.0203435Z             },
2026-06-18T11:18:00.0203525Z             {
2026-06-18T11:18:00.0203629Z               "path": "crates/spt-term/src/reader.rs",
2026-06-18T11:18:00.0203716Z               "line": 266
2026-06-18T11:18:00.0203803Z             }
2026-06-18T11:18:00.0203883Z           ]
2026-06-18T11:18:00.0203973Z         }
2026-06-18T11:18:00.0204060Z       }
2026-06-18T11:18:00.0204146Z     },
2026-06-18T11:18:00.0204231Z     {
2026-06-18T11:18:00.0204350Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-18T11:18:00.0204761Z       "title": "Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)",
2026-06-18T11:18:00.0204865Z       "requiredStages": [
2026-06-18T11:18:00.0204951Z         "impl",
2026-06-18T11:18:00.0205038Z         "unit",
2026-06-18T11:18:00.0205113Z         "int"
2026-06-18T11:18:00.0205199Z       ],
2026-06-18T11:18:00.0205280Z       "stages": {
2026-06-18T11:18:00.0205362Z         "doc": {
2026-06-18T11:18:00.0205461Z           "complete": false,
2026-06-18T11:18:00.0205551Z           "evidence": []
2026-06-18T11:18:00.0205641Z         },
2026-06-18T11:18:00.0205722Z         "impl": {
2026-06-18T11:18:00.0205825Z           "complete": true,
2026-06-18T11:18:00.0205910Z           "evidence": [
2026-06-18T11:18:00.0205996Z             {
2026-06-18T11:18:00.0206121Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.0206220Z               "line": 178
2026-06-18T11:18:00.0206312Z             },
2026-06-18T11:18:00.0206397Z             {
2026-06-18T11:18:00.0206520Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.0206612Z               "line": 226
2026-06-18T11:18:00.0206707Z             },
2026-06-18T11:18:00.0206788Z             {
2026-06-18T11:18:00.0206893Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T11:18:00.0206980Z               "line": 79
2026-06-18T11:18:00.0207064Z             },
2026-06-18T11:18:00.0207150Z             {
2026-06-18T11:18:00.0207261Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-18T11:18:00.0207351Z               "line": 52
2026-06-18T11:18:00.0207427Z             },
2026-06-18T11:18:00.0207508Z             {
2026-06-18T11:18:00.0207624Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:18:00.0207708Z               "line": 251
2026-06-18T11:18:00.0207789Z             },
2026-06-18T11:18:00.0207872Z             {
2026-06-18T11:18:00.0207995Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-18T11:18:00.0208084Z               "line": 27
2026-06-18T11:18:00.0208159Z             },
2026-06-18T11:18:00.0208246Z             {
2026-06-18T11:18:00.0208368Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-18T11:18:00.0208472Z               "line": 79
2026-06-18T11:18:00.0208549Z             },
2026-06-18T11:18:00.0208636Z             {
2026-06-18T11:18:00.0208754Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-18T11:18:00.0208840Z               "line": 102
2026-06-18T11:18:00.0209078Z             },
2026-06-18T11:18:00.0209160Z             {
2026-06-18T11:18:00.0209279Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T11:18:00.0209373Z               "line": 116
2026-06-18T11:18:00.0209455Z             }
2026-06-18T11:18:00.0209542Z           ]
2026-06-18T11:18:00.0209617Z         },
2026-06-18T11:18:00.0209702Z         "int": {
2026-06-18T11:18:00.0209789Z           "complete": true,
2026-06-18T11:18:00.0209884Z           "evidence": [
2026-06-18T11:18:00.0209966Z             {
2026-06-18T11:18:00.0210094Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-18T11:18:00.0210181Z               "line": 43
2026-06-18T11:18:00.0210366Z             }
2026-06-18T11:18:00.0210452Z           ]
2026-06-18T11:18:00.0210533Z         },
2026-06-18T11:18:00.0210623Z         "unit": {
2026-06-18T11:18:00.0210714Z           "complete": true,
2026-06-18T11:18:00.0210801Z           "evidence": [
2026-06-18T11:18:00.0210880Z             {
2026-06-18T11:18:00.0211003Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.0211104Z               "line": 678
2026-06-18T11:18:00.0211186Z             },
2026-06-18T11:18:00.0211271Z             {
2026-06-18T11:18:00.0211370Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:18:00.0211471Z               "line": 469
2026-06-18T11:18:00.0211562Z             },
2026-06-18T11:18:00.0211647Z             {
2026-06-18T11:18:00.0211763Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-18T11:18:00.0211843Z               "line": 124
2026-06-18T11:18:00.0211933Z             },
2026-06-18T11:18:00.0212015Z             {
2026-06-18T11:18:00.0212139Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-18T11:18:00.0212224Z               "line": 143
2026-06-18T11:18:00.0212305Z             },
2026-06-18T11:18:00.0212397Z             {
2026-06-18T11:18:00.0212501Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-18T11:18:00.0212606Z               "line": 160
2026-06-18T11:18:00.0212693Z             },
2026-06-18T11:18:00.0212768Z             {
2026-06-18T11:18:00.0212887Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-18T11:18:00.0212973Z               "line": 187
2026-06-18T11:18:00.0213055Z             },
2026-06-18T11:18:00.0213134Z             {
2026-06-18T11:18:00.0213253Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-18T11:18:00.0213344Z               "line": 206
2026-06-18T11:18:00.0213424Z             },
2026-06-18T11:18:00.0213509Z             {
2026-06-18T11:18:00.0213613Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T11:18:00.0213704Z               "line": 229
2026-06-18T11:18:00.0213790Z             }
2026-06-18T11:18:00.0213870Z           ]
2026-06-18T11:18:00.0213956Z         }
2026-06-18T11:18:00.0214038Z       }
2026-06-18T11:18:00.0214123Z     },
2026-06-18T11:18:00.0214204Z     {
2026-06-18T11:18:00.0214324Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-18T11:18:00.0214949Z       "title": "Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)",
2026-06-18T11:18:00.0215044Z       "requiredStages": [
2026-06-18T11:18:00.0215130Z         "impl",
2026-06-18T11:18:00.0215211Z         "unit"
2026-06-18T11:18:00.0215297Z       ],
2026-06-18T11:18:00.0215387Z       "stages": {
2026-06-18T11:18:00.0215468Z         "doc": {
2026-06-18T11:18:00.0215565Z           "complete": false,
2026-06-18T11:18:00.0215650Z           "evidence": []
2026-06-18T11:18:00.0215749Z         },
2026-06-18T11:18:00.0215831Z         "impl": {
2026-06-18T11:18:00.0215927Z           "complete": true,
2026-06-18T11:18:00.0216016Z           "evidence": [
2026-06-18T11:18:00.0216096Z             {
2026-06-18T11:18:00.0216216Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.0216408Z               "line": 622
2026-06-18T11:18:00.0216499Z             },
2026-06-18T11:18:00.0216586Z             {
2026-06-18T11:18:00.0216705Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.0216795Z               "line": 840
2026-06-18T11:18:00.0216872Z             }
2026-06-18T11:18:00.0216953Z           ]
2026-06-18T11:18:00.0217043Z         },
2026-06-18T11:18:00.0217129Z         "int": {
2026-06-18T11:18:00.0217225Z           "complete": false,
2026-06-18T11:18:00.0217316Z           "evidence": []
2026-06-18T11:18:00.0217400Z         },
2026-06-18T11:18:00.0217487Z         "unit": {
2026-06-18T11:18:00.0217573Z           "complete": true,
2026-06-18T11:18:00.0217734Z           "evidence": [
2026-06-18T11:18:00.0217821Z             {
2026-06-18T11:18:00.0217944Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-18T11:18:00.0218034Z               "line": 161
2026-06-18T11:18:00.0218122Z             }
2026-06-18T11:18:00.0218208Z           ]
2026-06-18T11:18:00.0218296Z         }
2026-06-18T11:18:00.0218383Z       }
2026-06-18T11:18:00.0218460Z     },
2026-06-18T11:18:00.0218546Z     {
2026-06-18T11:18:00.0218668Z       "id": "REQ-HAZARD-DAEMON-STOP-BARRIER",
2026-06-18T11:18:00.0220431Z       "title": "B3: `spt daemon stop` then an immediate `spt daemon start` does NOT race — stop fully completes before it returns. Today request_stop (seedmap.rs:240-255) returns on the KIND_STOPPING ack (sent seedmap.rs:174-176) BEFORE the seed socket unbinds, so a following is_running ping (daemon.rs:375) wins the exit window and start reports ALREADY_RUNNING (operator: daemon stop → STOPPED then start → ALREADY_RUNNING). FIX: unbind/stop-gate the seed socket BEFORE acking KIND_STOPPING, OR request_stop waits for a ping-to-fail before returning. Unit: stop then immediate is_running()==false. (v0.12.0)",
2026-06-18T11:18:00.0220544Z       "requiredStages": [
2026-06-18T11:18:00.0220625Z         "impl",
2026-06-18T11:18:00.0220712Z         "unit"
2026-06-18T11:18:00.0220811Z       ],
2026-06-18T11:18:00.0220901Z       "stages": {
2026-06-18T11:18:00.0220989Z         "doc": {
2026-06-18T11:18:00.0221084Z           "complete": false,
2026-06-18T11:18:00.0221163Z           "evidence": []
2026-06-18T11:18:00.0221240Z         },
2026-06-18T11:18:00.0221323Z         "impl": {
2026-06-18T11:18:00.0221418Z           "complete": true,
2026-06-18T11:18:00.0221502Z           "evidence": [
2026-06-18T11:18:00.0221577Z             {
2026-06-18T11:18:00.0221702Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-18T11:18:00.0221797Z               "line": 257
2026-06-18T11:18:00.0221883Z             }
2026-06-18T11:18:00.0221964Z           ]
2026-06-18T11:18:00.0222055Z         },
2026-06-18T11:18:00.0222136Z         "int": {
2026-06-18T11:18:00.0222235Z           "complete": false,
2026-06-18T11:18:00.0222332Z           "evidence": []
2026-06-18T11:18:00.0222408Z         },
2026-06-18T11:18:00.0222493Z         "unit": {
2026-06-18T11:18:00.0222575Z           "complete": true,
2026-06-18T11:18:00.0222675Z           "evidence": [
2026-06-18T11:18:00.0222751Z             {
2026-06-18T11:18:00.0222874Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-18T11:18:00.0222967Z               "line": 360
2026-06-18T11:18:00.0223051Z             }
2026-06-18T11:18:00.0223137Z           ]
2026-06-18T11:18:00.0223214Z         }
2026-06-18T11:18:00.0223305Z       }
2026-06-18T11:18:00.0223385Z     },
2026-06-18T11:18:00.0223466Z     {
2026-06-18T11:18:00.0223582Z       "id": "REQ-HAZARD-DAEMON-STOP-REAP",
2026-06-18T11:18:00.0225341Z       "title": "Breap: `spt daemon stop` REAPS the spt-hosted children it spawned — no orphaned psyche/harness processes. Today a stop leaves ~8 orphaned claude-spt-psyche.exe + spt.exe: Psyches are spawned DETACHED (runtime.rs:342-356, the Child is dropped — 'Detached' ~349) and the livehost stop flag Arc<AtomicBool> is NEVER raised (brainproc.rs:227-230 holds it 'for symmetry'). FIX: on stop, raise the livehost stop flag AND kill the spawned psyche/spt-hosted children — via a Windows job object / Unix process-group so the children die with the daemon (not detached-immortal). Folds with B3 (both the stop path). (v0.12.0)",
2026-06-18T11:18:00.0225566Z       "requiredStages": [
2026-06-18T11:18:00.0225656Z         "impl",
2026-06-18T11:18:00.0225741Z         "unit"
2026-06-18T11:18:00.0225829Z       ],
2026-06-18T11:18:00.0225918Z       "stages": {
2026-06-18T11:18:00.0226009Z         "doc": {
2026-06-18T11:18:00.0228619Z           "complete": false,
2026-06-18T11:18:00.0228748Z           "evidence": []
2026-06-18T11:18:00.0228833Z         },
2026-06-18T11:18:00.0228919Z         "impl": {
2026-06-18T11:18:00.0229319Z           "complete": true,
2026-06-18T11:18:00.0229409Z           "evidence": [
2026-06-18T11:18:00.0229493Z             {
2026-06-18T11:18:00.0229631Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0229727Z               "line": 1018
2026-06-18T11:18:00.0229808Z             },
2026-06-18T11:18:00.0229902Z             {
2026-06-18T11:18:00.0230028Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:18:00.0230118Z               "line": 278
2026-06-18T11:18:00.0230203Z             },
2026-06-18T11:18:00.0230280Z             {
2026-06-18T11:18:00.0230394Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:18:00.0230484Z               "line": 311
2026-06-18T11:18:00.0230565Z             },
2026-06-18T11:18:00.0230652Z             {
2026-06-18T11:18:00.0230766Z               "path": "crates/spt-daemon/src/reap.rs",
2026-06-18T11:18:00.0230847Z               "line": 26
2026-06-18T11:18:00.0230924Z             }
2026-06-18T11:18:00.0231014Z           ]
2026-06-18T11:18:00.0231086Z         },
2026-06-18T11:18:00.0231171Z         "int": {
2026-06-18T11:18:00.0231272Z           "complete": false,
2026-06-18T11:18:00.0231362Z           "evidence": []
2026-06-18T11:18:00.0231443Z         },
2026-06-18T11:18:00.0231529Z         "unit": {
2026-06-18T11:18:00.0231626Z           "complete": true,
2026-06-18T11:18:00.0231714Z           "evidence": [
2026-06-18T11:18:00.0231800Z             {
2026-06-18T11:18:00.0231921Z               "path": "crates/spt-daemon/src/reap.rs",
2026-06-18T11:18:00.0231996Z               "line": 271
2026-06-18T11:18:00.0232081Z             },
2026-06-18T11:18:00.0232156Z             {
2026-06-18T11:18:00.0232263Z               "path": "crates/spt-daemon/src/reap.rs",
2026-06-18T11:18:00.0232358Z               "line": 348
2026-06-18T11:18:00.0232438Z             }
2026-06-18T11:18:00.0232515Z           ]
2026-06-18T11:18:00.0232601Z         }
2026-06-18T11:18:00.0232682Z       }
2026-06-18T11:18:00.0232767Z     },
2026-06-18T11:18:00.0232859Z     {
2026-06-18T11:18:00.0232978Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-18T11:18:00.0233159Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-18T11:18:00.0233259Z       "requiredStages": [
2026-06-18T11:18:00.0233344Z         "impl",
2026-06-18T11:18:00.0233430Z         "unit"
2026-06-18T11:18:00.0233517Z       ],
2026-06-18T11:18:00.0233602Z       "stages": {
2026-06-18T11:18:00.0233687Z         "doc": {
2026-06-18T11:18:00.0233774Z           "complete": false,
2026-06-18T11:18:00.0233861Z           "evidence": []
2026-06-18T11:18:00.0233945Z         },
2026-06-18T11:18:00.0234016Z         "impl": {
2026-06-18T11:18:00.0234113Z           "complete": true,
2026-06-18T11:18:00.0234203Z           "evidence": [
2026-06-18T11:18:00.0234283Z             {
2026-06-18T11:18:00.0234401Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T11:18:00.0234498Z               "line": 40
2026-06-18T11:18:00.0234577Z             },
2026-06-18T11:18:00.0234676Z             {
2026-06-18T11:18:00.0234791Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T11:18:00.0234887Z               "line": 103
2026-06-18T11:18:00.0234976Z             },
2026-06-18T11:18:00.0235053Z             {
2026-06-18T11:18:00.0235163Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T11:18:00.0235352Z               "line": 218
2026-06-18T11:18:00.0235436Z             },
2026-06-18T11:18:00.0235516Z             {
2026-06-18T11:18:00.0235625Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T11:18:00.0235716Z               "line": 323
2026-06-18T11:18:00.0235802Z             }
2026-06-18T11:18:00.0235887Z           ]
2026-06-18T11:18:00.0235973Z         },
2026-06-18T11:18:00.0236060Z         "int": {
2026-06-18T11:18:00.0236154Z           "complete": false,
2026-06-18T11:18:00.0236240Z           "evidence": []
2026-06-18T11:18:00.0236321Z         },
2026-06-18T11:18:00.0236399Z         "unit": {
2026-06-18T11:18:00.0236569Z           "complete": true,
2026-06-18T11:18:00.0236651Z           "evidence": [
2026-06-18T11:18:00.0236737Z             {
2026-06-18T11:18:00.0236836Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T11:18:00.0236932Z               "line": 361
2026-06-18T11:18:00.0237024Z             },
2026-06-18T11:18:00.0237113Z             {
2026-06-18T11:18:00.0237226Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T11:18:00.0237321Z               "line": 433
2026-06-18T11:18:00.0237402Z             },
2026-06-18T11:18:00.0237486Z             {
2026-06-18T11:18:00.0237590Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T11:18:00.0237687Z               "line": 496
2026-06-18T11:18:00.0237763Z             },
2026-06-18T11:18:00.0237848Z             {
2026-06-18T11:18:00.0237958Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T11:18:00.0238054Z               "line": 517
2026-06-18T11:18:00.0238135Z             }
2026-06-18T11:18:00.0238215Z           ]
2026-06-18T11:18:00.0238312Z         }
2026-06-18T11:18:00.0238388Z       }
2026-06-18T11:18:00.0238468Z     },
2026-06-18T11:18:00.0238554Z     {
2026-06-18T11:18:00.0238664Z       "id": "REQ-HAZARD-DEFERRED-MANIFEST",
2026-06-18T11:18:00.0241012Z       "title": "A pointer-mode (delegated / GhReleaseManaged) adapter whose binary/manifest is not yet extracted is reported with a CLEAR diagnostic, never silently dropped. Today such an adapter reads its manifest LIVE from source_dir (registry.rs manifest_dir ~146/149); a deferred / un-extracted install makes load_manifest fail → registered() (~410, filter_map(.ok())) SILENTLY DROPS the row → downstream ADAPTER_UNRESOLVED + a cryptic os-error-2 on `spt adapter use`. FIX: surface a clear diagnostic at the resolver + at `adapter use` (name the adapter + the deferred/missing-manifest cause + the fix), not a silent filter-drop and not a bare os-error-2; consider an eager manifest copy at register time so host_binaries survive before the binary download completes. doyle Finding A. (post-v0.10.0)",
2026-06-18T11:18:00.0241130Z       "requiredStages": [
2026-06-18T11:18:00.0241222Z         "impl",
2026-06-18T11:18:00.0241311Z         "unit"
2026-06-18T11:18:00.0241392Z       ],
2026-06-18T11:18:00.0241479Z       "stages": {
2026-06-18T11:18:00.0241565Z         "doc": {
2026-06-18T11:18:00.0241670Z           "complete": false,
2026-06-18T11:18:00.0241755Z           "evidence": []
2026-06-18T11:18:00.0241837Z         },
2026-06-18T11:18:00.0241917Z         "impl": {
2026-06-18T11:18:00.0242013Z           "complete": true,
2026-06-18T11:18:00.0242104Z           "evidence": [
2026-06-18T11:18:00.0242190Z             {
2026-06-18T11:18:00.0242313Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0242404Z               "line": 402
2026-06-18T11:18:00.0242486Z             },
2026-06-18T11:18:00.0242566Z             {
2026-06-18T11:18:00.0242688Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0242784Z               "line": 446
2026-06-18T11:18:00.0242861Z             }
2026-06-18T11:18:00.0242946Z           ]
2026-06-18T11:18:00.0243027Z         },
2026-06-18T11:18:00.0243123Z         "int": {
2026-06-18T11:18:00.0243219Z           "complete": false,
2026-06-18T11:18:00.0243308Z           "evidence": []
2026-06-18T11:18:00.0243400Z         },
2026-06-18T11:18:00.0243580Z         "unit": {
2026-06-18T11:18:00.0243680Z           "complete": true,
2026-06-18T11:18:00.0243767Z           "evidence": [
2026-06-18T11:18:00.0243847Z             {
2026-06-18T11:18:00.0243976Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0244058Z               "line": 910
2026-06-18T11:18:00.0244139Z             }
2026-06-18T11:18:00.0244220Z           ]
2026-06-18T11:18:00.0244300Z         }
2026-06-18T11:18:00.0244382Z       }
2026-06-18T11:18:00.0244472Z     },
2026-06-18T11:18:00.0244558Z     {
2026-06-18T11:18:00.0244678Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-18T11:18:00.0244806Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-18T11:18:00.0244995Z       "requiredStages": [
2026-06-18T11:18:00.0245081Z         "impl",
2026-06-18T11:18:00.0245165Z         "unit"
2026-06-18T11:18:00.0245250Z       ],
2026-06-18T11:18:00.0245336Z       "stages": {
2026-06-18T11:18:00.0245423Z         "doc": {
2026-06-18T11:18:00.0245522Z           "complete": false,
2026-06-18T11:18:00.0245603Z           "evidence": []
2026-06-18T11:18:00.0245690Z         },
2026-06-18T11:18:00.0245771Z         "impl": {
2026-06-18T11:18:00.0245870Z           "complete": true,
2026-06-18T11:18:00.0245971Z           "evidence": [
2026-06-18T11:18:00.0246052Z             {
2026-06-18T11:18:00.0246170Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T11:18:00.0246262Z               "line": 116
2026-06-18T11:18:00.0246353Z             },
2026-06-18T11:18:00.0246438Z             {
2026-06-18T11:18:00.0246552Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T11:18:00.0246644Z               "line": 211
2026-06-18T11:18:00.0246738Z             }
2026-06-18T11:18:00.0246824Z           ]
2026-06-18T11:18:00.0246911Z         },
2026-06-18T11:18:00.0246992Z         "int": {
2026-06-18T11:18:00.0247086Z           "complete": false,
2026-06-18T11:18:00.0247177Z           "evidence": []
2026-06-18T11:18:00.0247259Z         },
2026-06-18T11:18:00.0247349Z         "unit": {
2026-06-18T11:18:00.0247444Z           "complete": true,
2026-06-18T11:18:00.0247526Z           "evidence": [
2026-06-18T11:18:00.0247612Z             {
2026-06-18T11:18:00.0247725Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T11:18:00.0247814Z               "line": 388
2026-06-18T11:18:00.0247901Z             },
2026-06-18T11:18:00.0247985Z             {
2026-06-18T11:18:00.0248089Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T11:18:00.0248175Z               "line": 469
2026-06-18T11:18:00.0248252Z             }
2026-06-18T11:18:00.0248333Z           ]
2026-06-18T11:18:00.0248418Z         }
2026-06-18T11:18:00.0248504Z       }
2026-06-18T11:18:00.0248576Z     },
2026-06-18T11:18:00.0248662Z     {
2026-06-18T11:18:00.0248784Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-18T11:18:00.0249906Z       "title": "Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn of an immortal child (daemon, shell binary) runs bInheritHandles=FALSE, or a caller capturing output anywhere up the process chain hangs forever on a pipe that never EOFs — std-handle flag stripping is NOT sufficient (grandparent strays still flow) (5.6)",
2026-06-18T11:18:00.0250016Z       "requiredStages": [
2026-06-18T11:18:00.0250102Z         "impl",
2026-06-18T11:18:00.0250188Z         "unit"
2026-06-18T11:18:00.0250268Z       ],
2026-06-18T11:18:00.0250353Z       "stages": {
2026-06-18T11:18:00.0250434Z         "doc": {
2026-06-18T11:18:00.0250534Z           "complete": true,
2026-06-18T11:18:00.0250623Z           "evidence": [
2026-06-18T11:18:00.0250703Z             {
2026-06-18T11:18:00.0250823Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T11:18:00.0250905Z               "line": 206
2026-06-18T11:18:00.0250980Z             }
2026-06-18T11:18:00.0251061Z           ]
2026-06-18T11:18:00.0251143Z         },
2026-06-18T11:18:00.0251238Z         "impl": {
2026-06-18T11:18:00.0251337Z           "complete": true,
2026-06-18T11:18:00.0251533Z           "evidence": [
2026-06-18T11:18:00.0251619Z             {
2026-06-18T11:18:00.0251735Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:18:00.0251820Z               "line": 657
2026-06-18T11:18:00.0251901Z             },
2026-06-18T11:18:00.0251986Z             {
2026-06-18T11:18:00.0252102Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:18:00.0252196Z               "line": 749
2026-06-18T11:18:00.0252277Z             },
2026-06-18T11:18:00.0252359Z             {
2026-06-18T11:18:00.0252477Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.0252679Z               "line": 184
2026-06-18T11:18:00.0252764Z             }
2026-06-18T11:18:00.0252844Z           ]
2026-06-18T11:18:00.0252925Z         },
2026-06-18T11:18:00.0253013Z         "int": {
2026-06-18T11:18:00.0253107Z           "complete": false,
2026-06-18T11:18:00.0253191Z           "evidence": []
2026-06-18T11:18:00.0253272Z         },
2026-06-18T11:18:00.0253368Z         "unit": {
2026-06-18T11:18:00.0253460Z           "complete": true,
2026-06-18T11:18:00.0253553Z           "evidence": [
2026-06-18T11:18:00.0253640Z             {
2026-06-18T11:18:00.0253754Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:18:00.0253844Z               "line": 798
2026-06-18T11:18:00.0253921Z             },
2026-06-18T11:18:00.0254003Z             {
2026-06-18T11:18:00.0254132Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-18T11:18:00.0254216Z               "line": 44
2026-06-18T11:18:00.0254308Z             },
2026-06-18T11:18:00.0254393Z             {
2026-06-18T11:18:00.0254526Z               "path": "crates/spt/tests/shell_actgate_e2e.rs",
2026-06-18T11:18:00.0254623Z               "line": 52
2026-06-18T11:18:00.0254704Z             },
2026-06-18T11:18:00.0254789Z             {
2026-06-18T11:18:00.0254904Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-18T11:18:00.0254981Z               "line": 57
2026-06-18T11:18:00.0255084Z             },
2026-06-18T11:18:00.0255170Z             {
2026-06-18T11:18:00.0255286Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-18T11:18:00.0255375Z               "line": 54
2026-06-18T11:18:00.0255456Z             }
2026-06-18T11:18:00.0255546Z           ]
2026-06-18T11:18:00.0255632Z         }
2026-06-18T11:18:00.0255716Z       }
2026-06-18T11:18:00.0255801Z     },
2026-06-18T11:18:00.0255887Z     {
2026-06-18T11:18:00.0256017Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-18T11:18:00.0256216Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-18T11:18:00.0256316Z       "requiredStages": [
2026-06-18T11:18:00.0256401Z         "impl",
2026-06-18T11:18:00.0256487Z         "unit"
2026-06-18T11:18:00.0256575Z       ],
2026-06-18T11:18:00.0256655Z       "stages": {
2026-06-18T11:18:00.0256740Z         "doc": {
2026-06-18T11:18:00.0256832Z           "complete": false,
2026-06-18T11:18:00.0256927Z           "evidence": []
2026-06-18T11:18:00.0257008Z         },
2026-06-18T11:18:00.0257093Z         "impl": {
2026-06-18T11:18:00.0257185Z           "complete": true,
2026-06-18T11:18:00.0257265Z           "evidence": [
2026-06-18T11:18:00.0257346Z             {
2026-06-18T11:18:00.0257466Z               "path": "crates/spt-live/src/context.rs",
2026-06-18T11:18:00.0257557Z               "line": 26
2026-06-18T11:18:00.0257636Z             },
2026-06-18T11:18:00.0257718Z             {
2026-06-18T11:18:00.0257824Z               "path": "crates/spt-live/src/context.rs",
2026-06-18T11:18:00.0257909Z               "line": 135
2026-06-18T11:18:00.0257990Z             },
2026-06-18T11:18:00.0258081Z             {
2026-06-18T11:18:00.0258210Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-18T11:18:00.0258294Z               "line": 26
2026-06-18T11:18:00.0258379Z             },
2026-06-18T11:18:00.0258461Z             {
2026-06-18T11:18:00.0258583Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-18T11:18:00.0258749Z               "line": 237
2026-06-18T11:18:00.0258836Z             }
2026-06-18T11:18:00.0258916Z           ]
2026-06-18T11:18:00.0259078Z         },
2026-06-18T11:18:00.0259165Z         "int": {
2026-06-18T11:18:00.0259264Z           "complete": false,
2026-06-18T11:18:00.0259354Z           "evidence": []
2026-06-18T11:18:00.0259428Z         },
2026-06-18T11:18:00.0259508Z         "unit": {
2026-06-18T11:18:00.0259607Z           "complete": true,
2026-06-18T11:18:00.0259684Z           "evidence": [
2026-06-18T11:18:00.0259766Z             {
2026-06-18T11:18:00.0259884Z               "path": "crates/spt-live/src/context.rs",
2026-06-18T11:18:00.0260081Z               "line": 161
2026-06-18T11:18:00.0260165Z             },
2026-06-18T11:18:00.0260242Z             {
2026-06-18T11:18:00.0260362Z               "path": "crates/spt-live/src/context.rs",
2026-06-18T11:18:00.0260443Z               "line": 170
2026-06-18T11:18:00.0260528Z             },
2026-06-18T11:18:00.0260614Z             {
2026-06-18T11:18:00.0260725Z               "path": "crates/spt-live/src/context.rs",
2026-06-18T11:18:00.0260819Z               "line": 179
2026-06-18T11:18:00.0260908Z             },
2026-06-18T11:18:00.0260989Z             {
2026-06-18T11:18:00.0261108Z               "path": "crates/spt-live/src/context.rs",
2026-06-18T11:18:00.0261202Z               "line": 190
2026-06-18T11:18:00.0261277Z             },
2026-06-18T11:18:00.0261364Z             {
2026-06-18T11:18:00.0261474Z               "path": "crates/spt-live/src/context.rs",
2026-06-18T11:18:00.0261554Z               "line": 199
2026-06-18T11:18:00.0261645Z             },
2026-06-18T11:18:00.0261732Z             {
2026-06-18T11:18:00.0261850Z               "path": "crates/spt-live/src/context.rs",
2026-06-18T11:18:00.0261945Z               "line": 216
2026-06-18T11:18:00.0262027Z             },
2026-06-18T11:18:00.0262108Z             {
2026-06-18T11:18:00.0262212Z               "path": "crates/spt-live/src/context.rs",
2026-06-18T11:18:00.0262300Z               "line": 242
2026-06-18T11:18:00.0262385Z             },
2026-06-18T11:18:00.0262461Z             {
2026-06-18T11:18:00.0262570Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-18T11:18:00.0262647Z               "line": 295
2026-06-18T11:18:00.0262728Z             },
2026-06-18T11:18:00.0262809Z             {
2026-06-18T11:18:00.0262934Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-18T11:18:00.0263023Z               "line": 244
2026-06-18T11:18:00.0263094Z             },
2026-06-18T11:18:00.0263180Z             {
2026-06-18T11:18:00.0263296Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-18T11:18:00.0263400Z               "line": 265
2026-06-18T11:18:00.0263476Z             },
2026-06-18T11:18:00.0263563Z             {
2026-06-18T11:18:00.0263681Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-18T11:18:00.0263770Z               "line": 293
2026-06-18T11:18:00.0263851Z             },
2026-06-18T11:18:00.0263938Z             {
2026-06-18T11:18:00.0264067Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-18T11:18:00.0264152Z               "line": 317
2026-06-18T11:18:00.0264238Z             },
2026-06-18T11:18:00.0264319Z             {
2026-06-18T11:18:00.0264442Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-18T11:18:00.0264525Z               "line": 327
2026-06-18T11:18:00.0264606Z             },
2026-06-18T11:18:00.0264687Z             {
2026-06-18T11:18:00.0264801Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-18T11:18:00.0264887Z               "line": 540
2026-06-18T11:18:00.0264972Z             }
2026-06-18T11:18:00.0265063Z           ]
2026-06-18T11:18:00.0265149Z         }
2026-06-18T11:18:00.0265231Z       }
2026-06-18T11:18:00.0265315Z     },
2026-06-18T11:18:00.0265391Z     {
2026-06-18T11:18:00.0265512Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-18T11:18:00.0265663Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-18T11:18:00.0265856Z       "requiredStages": [
2026-06-18T11:18:00.0265954Z         "impl",
2026-06-18T11:18:00.0266035Z         "unit"
2026-06-18T11:18:00.0266125Z       ],
2026-06-18T11:18:00.0266206Z       "stages": {
2026-06-18T11:18:00.0266304Z         "doc": {
2026-06-18T11:18:00.0266408Z           "complete": false,
2026-06-18T11:18:00.0266500Z           "evidence": []
2026-06-18T11:18:00.0266591Z         },
2026-06-18T11:18:00.0266676Z         "impl": {
2026-06-18T11:18:00.0266772Z           "complete": true,
2026-06-18T11:18:00.0266862Z           "evidence": [
2026-06-18T11:18:00.0266948Z             {
2026-06-18T11:18:00.0267144Z               "path": "crates/spt-live/src/echo.rs",
2026-06-18T11:18:00.0267230Z               "line": 25
2026-06-18T11:18:00.0267314Z             },
2026-06-18T11:18:00.0267397Z             {
2026-06-18T11:18:00.0267506Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-18T11:18:00.0267587Z               "line": 26
2026-06-18T11:18:00.0267682Z             },
2026-06-18T11:18:00.0267769Z             {
2026-06-18T11:18:00.0267878Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-18T11:18:00.0267963Z               "line": 159
2026-06-18T11:18:00.0268050Z             }
2026-06-18T11:18:00.0268136Z           ]
2026-06-18T11:18:00.0268221Z         },
2026-06-18T11:18:00.0268307Z         "int": {
2026-06-18T11:18:00.0268437Z           "complete": false,
2026-06-18T11:18:00.0268530Z           "evidence": []
2026-06-18T11:18:00.0268617Z         },
2026-06-18T11:18:00.0268699Z         "unit": {
2026-06-18T11:18:00.0268798Z           "complete": true,
2026-06-18T11:18:00.0268888Z           "evidence": [
2026-06-18T11:18:00.0269069Z             {
2026-06-18T11:18:00.0269176Z               "path": "crates/spt-live/src/echo.rs",
2026-06-18T11:18:00.0269261Z               "line": 188
2026-06-18T11:18:00.0269343Z             },
2026-06-18T11:18:00.0269429Z             {
2026-06-18T11:18:00.0269543Z               "path": "crates/spt-live/src/echo.rs",
2026-06-18T11:18:00.0269639Z               "line": 240
2026-06-18T11:18:00.0269739Z             },
2026-06-18T11:18:00.0269815Z             {
2026-06-18T11:18:00.0269924Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-18T11:18:00.0270030Z               "line": 186
2026-06-18T11:18:00.0270139Z             }
2026-06-18T11:18:00.0270229Z           ]
2026-06-18T11:18:00.0270312Z         }
2026-06-18T11:18:00.0270401Z       }
2026-06-18T11:18:00.0270487Z     },
2026-06-18T11:18:00.0270563Z     {
2026-06-18T11:18:00.0270665Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-18T11:18:00.0270830Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-18T11:18:00.0270941Z       "requiredStages": [
2026-06-18T11:18:00.0271022Z         "impl",
2026-06-18T11:18:00.0271107Z         "unit"
2026-06-18T11:18:00.0271203Z       ],
2026-06-18T11:18:00.0271285Z       "stages": {
2026-06-18T11:18:00.0271369Z         "doc": {
2026-06-18T11:18:00.0271464Z           "complete": false,
2026-06-18T11:18:00.0271563Z           "evidence": []
2026-06-18T11:18:00.0271644Z         },
2026-06-18T11:18:00.0271733Z         "impl": {
2026-06-18T11:18:00.0271813Z           "complete": true,
2026-06-18T11:18:00.0271900Z           "evidence": [
2026-06-18T11:18:00.0271982Z             {
2026-06-18T11:18:00.0272086Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-18T11:18:00.0272182Z               "line": 48
2026-06-18T11:18:00.0272263Z             },
2026-06-18T11:18:00.0272363Z             {
2026-06-18T11:18:00.0272472Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-18T11:18:00.0272554Z               "line": 55
2026-06-18T11:18:00.0272640Z             },
2026-06-18T11:18:00.0272725Z             {
2026-06-18T11:18:00.0272840Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-18T11:18:00.0272916Z               "line": 74
2026-06-18T11:18:00.0273006Z             },
2026-06-18T11:18:00.0273092Z             {
2026-06-18T11:18:00.0273208Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-18T11:18:00.0273455Z               "line": 91
2026-06-18T11:18:00.0273541Z             }
2026-06-18T11:18:00.0273631Z           ]
2026-06-18T11:18:00.0273712Z         },
2026-06-18T11:18:00.0273794Z         "int": {
2026-06-18T11:18:00.0273898Z           "complete": false,
2026-06-18T11:18:00.0273983Z           "evidence": []
2026-06-18T11:18:00.0274060Z         },
2026-06-18T11:18:00.0274138Z         "unit": {
2026-06-18T11:18:00.0274227Z           "complete": true,
2026-06-18T11:18:00.0274317Z           "evidence": [
2026-06-18T11:18:00.0274407Z             {
2026-06-18T11:18:00.0274527Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-18T11:18:00.0274717Z               "line": 149
2026-06-18T11:18:00.0274799Z             },
2026-06-18T11:18:00.0274884Z             {
2026-06-18T11:18:00.0274998Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-18T11:18:00.0275080Z               "line": 166
2026-06-18T11:18:00.0275175Z             },
2026-06-18T11:18:00.0275256Z             {
2026-06-18T11:18:00.0275371Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-18T11:18:00.0275471Z               "line": 176
2026-06-18T11:18:00.0275551Z             },
2026-06-18T11:18:00.0275641Z             {
2026-06-18T11:18:00.0275743Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-18T11:18:00.0275843Z               "line": 194
2026-06-18T11:18:00.0275919Z             },
2026-06-18T11:18:00.0276005Z             {
2026-06-18T11:18:00.0276124Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-18T11:18:00.0276214Z               "line": 207
2026-06-18T11:18:00.0276300Z             }
2026-06-18T11:18:00.0276392Z           ]
2026-06-18T11:18:00.0276481Z         }
2026-06-18T11:18:00.0276571Z       }
2026-06-18T11:18:00.0276656Z     },
2026-06-18T11:18:00.0276747Z     {
2026-06-18T11:18:00.0276860Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-18T11:18:00.0277050Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-18T11:18:00.0277151Z       "requiredStages": [
2026-06-18T11:18:00.0277236Z         "impl",
2026-06-18T11:18:00.0277322Z         "unit"
2026-06-18T11:18:00.0277399Z       ],
2026-06-18T11:18:00.0277494Z       "stages": {
2026-06-18T11:18:00.0277574Z         "doc": {
2026-06-18T11:18:00.0277671Z           "complete": false,
2026-06-18T11:18:00.0277756Z           "evidence": []
2026-06-18T11:18:00.0277842Z         },
2026-06-18T11:18:00.0277927Z         "impl": {
2026-06-18T11:18:00.0278019Z           "complete": true,
2026-06-18T11:18:00.0278109Z           "evidence": [
2026-06-18T11:18:00.0278189Z             {
2026-06-18T11:18:00.0278314Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.0278409Z               "line": 466
2026-06-18T11:18:00.0278495Z             },
2026-06-18T11:18:00.0278586Z             {
2026-06-18T11:18:00.0278696Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-18T11:18:00.0278796Z               "line": 26
2026-06-18T11:18:00.0278886Z             }
2026-06-18T11:18:00.0279034Z           ]
2026-06-18T11:18:00.0279115Z         },
2026-06-18T11:18:00.0279196Z         "int": {
2026-06-18T11:18:00.0279297Z           "complete": false,
2026-06-18T11:18:00.0279382Z           "evidence": []
2026-06-18T11:18:00.0279476Z         },
2026-06-18T11:18:00.0279557Z         "unit": {
2026-06-18T11:18:00.0279652Z           "complete": true,
2026-06-18T11:18:00.0279741Z           "evidence": [
2026-06-18T11:18:00.0279822Z             {
2026-06-18T11:18:00.0279932Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-18T11:18:00.0280023Z               "line": 150
2026-06-18T11:18:00.0280117Z             },
2026-06-18T11:18:00.0280199Z             {
2026-06-18T11:18:00.0280318Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-18T11:18:00.0280398Z               "line": 208
2026-06-18T11:18:00.0280489Z             }
2026-06-18T11:18:00.0280581Z           ]
2026-06-18T11:18:00.0280652Z         }
2026-06-18T11:18:00.0280843Z       }
2026-06-18T11:18:00.0280919Z     },
2026-06-18T11:18:00.0281000Z     {
2026-06-18T11:18:00.0281114Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-18T11:18:00.0282407Z       "title": "The daemon always runs unelevated in the invoking user's universe, regardless of which command spawns it: an elevated spawner de-elevates (Windows: UAC linked token via CreateProcessWithTokenW; Linux: drop to SUDO_UID/SUDO_GID + the invoker's HOME) — an elevated daemon's pipes deny unelevated clients (every later spt reads not-running→spawn→bind Access-denied) and a sudo'd daemon roots the user's state universe (5.7)",
2026-06-18T11:18:00.0282622Z       "requiredStages": [
2026-06-18T11:18:00.0282707Z         "doc",
2026-06-18T11:18:00.0282795Z         "impl",
2026-06-18T11:18:00.0282885Z         "unit"
2026-06-18T11:18:00.0282970Z       ],
2026-06-18T11:18:00.0283056Z       "stages": {
2026-06-18T11:18:00.0283138Z         "doc": {
2026-06-18T11:18:00.0283242Z           "complete": true,
2026-06-18T11:18:00.0283337Z           "evidence": [
2026-06-18T11:18:00.0283420Z             {
2026-06-18T11:18:00.0283533Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T11:18:00.0283618Z               "line": 214
2026-06-18T11:18:00.0283700Z             }
2026-06-18T11:18:00.0283777Z           ]
2026-06-18T11:18:00.0283872Z         },
2026-06-18T11:18:00.0283953Z         "impl": {
2026-06-18T11:18:00.0284049Z           "complete": true,
2026-06-18T11:18:00.0284143Z           "evidence": [
2026-06-18T11:18:00.0284229Z             {
2026-06-18T11:18:00.0284349Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:18:00.0284430Z               "line": 56
2026-06-18T11:18:00.0284529Z             },
2026-06-18T11:18:00.0284616Z             {
2026-06-18T11:18:00.0284741Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:18:00.0284829Z               "line": 575
2026-06-18T11:18:00.0284910Z             },
2026-06-18T11:18:00.0284995Z             {
2026-06-18T11:18:00.0285121Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T11:18:00.0285215Z               "line": 36
2026-06-18T11:18:00.0285291Z             },
2026-06-18T11:18:00.0285373Z             {
2026-06-18T11:18:00.0285492Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T11:18:00.0285582Z               "line": 59
2026-06-18T11:18:00.0285669Z             },
2026-06-18T11:18:00.0285755Z             {
2026-06-18T11:18:00.0285868Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T11:18:00.0285954Z               "line": 83
2026-06-18T11:18:00.0286036Z             },
2026-06-18T11:18:00.0286121Z             {
2026-06-18T11:18:00.0286245Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T11:18:00.0286332Z               "line": 140
2026-06-18T11:18:00.0286417Z             },
2026-06-18T11:18:00.0286503Z             {
2026-06-18T11:18:00.0286609Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T11:18:00.0286713Z               "line": 159
2026-06-18T11:18:00.0286798Z             },
2026-06-18T11:18:00.0286884Z             {
2026-06-18T11:18:00.0287004Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T11:18:00.0287094Z               "line": 384
2026-06-18T11:18:00.0287184Z             },
2026-06-18T11:18:00.0287270Z             {
2026-06-18T11:18:00.0287387Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T11:18:00.0287481Z               "line": 526
2026-06-18T11:18:00.0287558Z             },
2026-06-18T11:18:00.0287649Z             {
2026-06-18T11:18:00.0287763Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T11:18:00.0287863Z               "line": 572
2026-06-18T11:18:00.0287940Z             },
2026-06-18T11:18:00.0288026Z             {
2026-06-18T11:18:00.0288139Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.0288231Z               "line": 300
2026-06-18T11:18:00.0288321Z             },
2026-06-18T11:18:00.0288497Z             {
2026-06-18T11:18:00.0288617Z               "path": "crates/spt/src/main.rs",
2026-06-18T11:18:00.0288707Z               "line": 41
2026-06-18T11:18:00.0288783Z             }
2026-06-18T11:18:00.0288865Z           ]
2026-06-18T11:18:00.0289022Z         },
2026-06-18T11:18:00.0289117Z         "int": {
2026-06-18T11:18:00.0289209Z           "complete": false,
2026-06-18T11:18:00.0289307Z           "evidence": []
2026-06-18T11:18:00.0289384Z         },
2026-06-18T11:18:00.0289476Z         "unit": {
2026-06-18T11:18:00.0289571Z           "complete": true,
2026-06-18T11:18:00.0289655Z           "evidence": [
2026-06-18T11:18:00.0289737Z             {
2026-06-18T11:18:00.0289951Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T11:18:00.0290050Z               "line": 785
2026-06-18T11:18:00.0290141Z             },
2026-06-18T11:18:00.0290222Z             {
2026-06-18T11:18:00.0290348Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T11:18:00.0290435Z               "line": 826
2026-06-18T11:18:00.0290521Z             },
2026-06-18T11:18:00.0290607Z             {
2026-06-18T11:18:00.0290725Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T11:18:00.0290822Z               "line": 900
2026-06-18T11:18:00.0290903Z             }
2026-06-18T11:18:00.0290987Z           ]
2026-06-18T11:18:00.0291069Z         }
2026-06-18T11:18:00.0291156Z       }
2026-06-18T11:18:00.0291237Z     },
2026-06-18T11:18:00.0291316Z     {
2026-06-18T11:18:00.0291417Z       "id": "REQ-HAZARD-ENV-SUBST",
2026-06-18T11:18:00.0294699Z       "title": "`spt endpoint run` HONORS manifest [env.<VAR>] direction=inject values (with {key} substitution) on the spt-hosted spawn. Today only the [session.self] command ARGV is {id}-substituted; the [env] inject value is NEITHER substituted NOR applied — manifest.schema.json promises EnvVar.value = 'Value to inject (with substitution)' but prepare_harness_spawn fills only argv and SpawnReq carries no env, so a [env.SPT_ENDPOINT_ID].value='{id}' arrives EMPTY. A FLAGLESS harness (bare `claude`, no argv slot for {id}) then routes the id via [env] → empty → SessionStart sees empty $SPT_ENDPOINT_ID → seeds-by-PPID instead of binding → ZERO perch → NO_PERCH (the actual wall-b bind blocker; perri hard-repro'd). SILENT failure (empty inject, no error). FIX (doyle ruled a): fill every [env] inject value from the SAME {key} catalog as argv/role (mirror F-009 TEMPLATE fill, whole-string fill_template for an env value), thread it through SpawnReq.env → the broker sets it on the spawned PTY child. Correctness fix — schema already promises it, NO manifest change, NO new binary. PAIRS with REQ-SEND-SPT-HOSTED to make endpoint run fully work. doyle F-013. (post-v0.10.0)",
2026-06-18T11:18:00.0294827Z       "requiredStages": [
2026-06-18T11:18:00.0294924Z         "impl",
2026-06-18T11:18:00.0295005Z         "unit",
2026-06-18T11:18:00.0295094Z         "int"
2026-06-18T11:18:00.0295181Z       ],
2026-06-18T11:18:00.0295272Z       "stages": {
2026-06-18T11:18:00.0295366Z         "doc": {
2026-06-18T11:18:00.0295465Z           "complete": false,
2026-06-18T11:18:00.0295551Z           "evidence": []
2026-06-18T11:18:00.0295633Z         },
2026-06-18T11:18:00.0295728Z         "impl": {
2026-06-18T11:18:00.0295813Z           "complete": true,
2026-06-18T11:18:00.0295909Z           "evidence": [
2026-06-18T11:18:00.0296000Z             {
2026-06-18T11:18:00.0296137Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-18T11:18:00.0296234Z               "line": 102
2026-06-18T11:18:00.0296315Z             },
2026-06-18T11:18:00.0296400Z             {
2026-06-18T11:18:00.0296519Z               "path": "crates/spt-term/src/pty.rs",
2026-06-18T11:18:00.0296624Z               "line": 134
2026-06-18T11:18:00.0296710Z             }
2026-06-18T11:18:00.0296790Z           ]
2026-06-18T11:18:00.0296883Z         },
2026-06-18T11:18:00.0296963Z         "int": {
2026-06-18T11:18:00.0297063Z           "complete": true,
2026-06-18T11:18:00.0297154Z           "evidence": [
2026-06-18T11:18:00.0297348Z             {
2026-06-18T11:18:00.0297488Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-18T11:18:00.0297573Z               "line": 310
2026-06-18T11:18:00.0297663Z             },
2026-06-18T11:18:00.0297748Z             {
2026-06-18T11:18:00.0297872Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-18T11:18:00.0297966Z               "line": 504
2026-06-18T11:18:00.0298046Z             }
2026-06-18T11:18:00.0298137Z           ]
2026-06-18T11:18:00.0298224Z         },
2026-06-18T11:18:00.0298314Z         "unit": {
2026-06-18T11:18:00.0298404Z           "complete": true,
2026-06-18T11:18:00.0298485Z           "evidence": [
2026-06-18T11:18:00.0301256Z             {
2026-06-18T11:18:00.0301429Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-18T11:18:00.0301528Z               "line": 205
2026-06-18T11:18:00.0301614Z             }
2026-06-18T11:18:00.0301706Z           ]
2026-06-18T11:18:00.0301787Z         }
2026-06-18T11:18:00.0301881Z       }
2026-06-18T11:18:00.0301963Z     },
2026-06-18T11:18:00.0302054Z     {
2026-06-18T11:18:00.0302177Z       "id": "REQ-HAZARD-ENVELOPE-CR-LINESAFE",
2026-06-18T11:18:00.0303920Z       "title": "Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\\n`→`<br>`) BEFORE framing, so a body carrying `\\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).",
2026-06-18T11:18:00.0304025Z       "requiredStages": [
2026-06-18T11:18:00.0304114Z         "impl",
2026-06-18T11:18:00.0304196Z         "unit"
2026-06-18T11:18:00.0304282Z       ],
2026-06-18T11:18:00.0304368Z       "stages": {
2026-06-18T11:18:00.0304467Z         "doc": {
2026-06-18T11:18:00.0304554Z           "complete": false,
2026-06-18T11:18:00.0304653Z           "evidence": []
2026-06-18T11:18:00.0304743Z         },
2026-06-18T11:18:00.0304830Z         "impl": {
2026-06-18T11:18:00.0304926Z           "complete": true,
2026-06-18T11:18:00.0305002Z           "evidence": [
2026-06-18T11:18:00.0305092Z             {
2026-06-18T11:18:00.0305217Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T11:18:00.0305311Z               "line": 31
2026-06-18T11:18:00.0305397Z             }
2026-06-18T11:18:00.0305479Z           ]
2026-06-18T11:18:00.0305565Z         },
2026-06-18T11:18:00.0305659Z         "int": {
2026-06-18T11:18:00.0305760Z           "complete": false,
2026-06-18T11:18:00.0305852Z           "evidence": []
2026-06-18T11:18:00.0305945Z         },
2026-06-18T11:18:00.0306035Z         "unit": {
2026-06-18T11:18:00.0306125Z           "complete": true,
2026-06-18T11:18:00.0306227Z           "evidence": [
2026-06-18T11:18:00.0306307Z             {
2026-06-18T11:18:00.0306436Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T11:18:00.0306527Z               "line": 181
2026-06-18T11:18:00.0306617Z             }
2026-06-18T11:18:00.0306707Z           ]
2026-06-18T11:18:00.0306790Z         }
2026-06-18T11:18:00.0306879Z       }
2026-06-18T11:18:00.0306964Z     },
2026-06-18T11:18:00.0307041Z     {
2026-06-18T11:18:00.0307165Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-18T11:18:00.0307327Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-18T11:18:00.0307429Z       "requiredStages": [
2026-06-18T11:18:00.0307513Z         "impl",
2026-06-18T11:18:00.0307613Z         "unit"
2026-06-18T11:18:00.0307695Z       ],
2026-06-18T11:18:00.0307786Z       "stages": {
2026-06-18T11:18:00.0307861Z         "doc": {
2026-06-18T11:18:00.0307966Z           "complete": false,
2026-06-18T11:18:00.0308058Z           "evidence": []
2026-06-18T11:18:00.0308143Z         },
2026-06-18T11:18:00.0308370Z         "impl": {
2026-06-18T11:18:00.0308451Z           "complete": true,
2026-06-18T11:18:00.0308535Z           "evidence": [
2026-06-18T11:18:00.0308625Z             {
2026-06-18T11:18:00.0308745Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T11:18:00.0308835Z               "line": 49
2026-06-18T11:18:00.0308916Z             },
2026-06-18T11:18:00.0309094Z             {
2026-06-18T11:18:00.0309212Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T11:18:00.0309307Z               "line": 81
2026-06-18T11:18:00.0309384Z             }
2026-06-18T11:18:00.0309470Z           ]
2026-06-18T11:18:00.0309560Z         },
2026-06-18T11:18:00.0309747Z         "int": {
2026-06-18T11:18:00.0309846Z           "complete": false,
2026-06-18T11:18:00.0309932Z           "evidence": []
2026-06-18T11:18:00.0310014Z         },
2026-06-18T11:18:00.0310094Z         "unit": {
2026-06-18T11:18:00.0310190Z           "complete": true,
2026-06-18T11:18:00.0310276Z           "evidence": [
2026-06-18T11:18:00.0310371Z             {
2026-06-18T11:18:00.0310490Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T11:18:00.0310577Z               "line": 156
2026-06-18T11:18:00.0310672Z             },
2026-06-18T11:18:00.0310752Z             {
2026-06-18T11:18:00.0310877Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T11:18:00.0310968Z               "line": 173
2026-06-18T11:18:00.0311048Z             },
2026-06-18T11:18:00.0311142Z             {
2026-06-18T11:18:00.0311247Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T11:18:00.0311337Z               "line": 196
2026-06-18T11:18:00.0311422Z             }
2026-06-18T11:18:00.0311511Z           ]
2026-06-18T11:18:00.0311602Z         }
2026-06-18T11:18:00.0311684Z       }
2026-06-18T11:18:00.0311760Z     },
2026-06-18T11:18:00.0311846Z     {
2026-06-18T11:18:00.0311971Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-18T11:18:00.0312145Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-18T11:18:00.0312252Z       "requiredStages": [
2026-06-18T11:18:00.0312347Z         "impl",
2026-06-18T11:18:00.0312427Z         "unit"
2026-06-18T11:18:00.0312513Z       ],
2026-06-18T11:18:00.0312595Z       "stages": {
2026-06-18T11:18:00.0312680Z         "doc": {
2026-06-18T11:18:00.0312770Z           "complete": false,
2026-06-18T11:18:00.0312862Z           "evidence": []
2026-06-18T11:18:00.0312938Z         },
2026-06-18T11:18:00.0313018Z         "impl": {
2026-06-18T11:18:00.0313114Z           "complete": true,
2026-06-18T11:18:00.0313191Z           "evidence": [
2026-06-18T11:18:00.0313272Z             {
2026-06-18T11:18:00.0313400Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T11:18:00.0313487Z               "line": 120
2026-06-18T11:18:00.0313573Z             }
2026-06-18T11:18:00.0313647Z           ]
2026-06-18T11:18:00.0313733Z         },
2026-06-18T11:18:00.0313814Z         "int": {
2026-06-18T11:18:00.0313913Z           "complete": false,
2026-06-18T11:18:00.0313992Z           "evidence": []
2026-06-18T11:18:00.0314078Z         },
2026-06-18T11:18:00.0314160Z         "unit": {
2026-06-18T11:18:00.0314242Z           "complete": true,
2026-06-18T11:18:00.0314345Z           "evidence": [
2026-06-18T11:18:00.0314422Z             {
2026-06-18T11:18:00.0314551Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T11:18:00.0314646Z               "line": 212
2026-06-18T11:18:00.0314731Z             },
2026-06-18T11:18:00.0314819Z             {
2026-06-18T11:18:00.0314933Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T11:18:00.0315018Z               "line": 221
2026-06-18T11:18:00.0315109Z             },
2026-06-18T11:18:00.0315190Z             {
2026-06-18T11:18:00.0315299Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T11:18:00.0315380Z               "line": 229
2026-06-18T11:18:00.0315463Z             },
2026-06-18T11:18:00.0315537Z             {
2026-06-18T11:18:00.0315782Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T11:18:00.0315866Z               "line": 239
2026-06-18T11:18:00.0315952Z             },
2026-06-18T11:18:00.0316030Z             {
2026-06-18T11:18:00.0316149Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T11:18:00.0316229Z               "line": 249
2026-06-18T11:18:00.0316311Z             }
2026-06-18T11:18:00.0316402Z           ]
2026-06-18T11:18:00.0316482Z         }
2026-06-18T11:18:00.0316562Z       }
2026-06-18T11:18:00.0316647Z     },
2026-06-18T11:18:00.0316734Z     {
2026-06-18T11:18:00.0316853Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-18T11:18:00.0317087Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-18T11:18:00.0317186Z       "requiredStages": [
2026-06-18T11:18:00.0317267Z         "impl",
2026-06-18T11:18:00.0317354Z         "unit"
2026-06-18T11:18:00.0317444Z       ],
2026-06-18T11:18:00.0317529Z       "stages": {
2026-06-18T11:18:00.0317616Z         "doc": {
2026-06-18T11:18:00.0317721Z           "complete": false,
2026-06-18T11:18:00.0317811Z           "evidence": []
2026-06-18T11:18:00.0317887Z         },
2026-06-18T11:18:00.0317974Z         "impl": {
2026-06-18T11:18:00.0318069Z           "complete": true,
2026-06-18T11:18:00.0318145Z           "evidence": [
2026-06-18T11:18:00.0318226Z             {
2026-06-18T11:18:00.0318337Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-18T11:18:00.0318435Z               "line": 14
2026-06-18T11:18:00.0318517Z             },
2026-06-18T11:18:00.0318603Z             {
2026-06-18T11:18:00.0318717Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-18T11:18:00.0318807Z               "line": 63
2026-06-18T11:18:00.0318892Z             }
2026-06-18T11:18:00.0319048Z           ]
2026-06-18T11:18:00.0319138Z         },
2026-06-18T11:18:00.0319224Z         "int": {
2026-06-18T11:18:00.0319320Z           "complete": false,
2026-06-18T11:18:00.0319419Z           "evidence": []
2026-06-18T11:18:00.0319509Z         },
2026-06-18T11:18:00.0319591Z         "unit": {
2026-06-18T11:18:00.0319687Z           "complete": true,
2026-06-18T11:18:00.0319782Z           "evidence": [
2026-06-18T11:18:00.0319863Z             {
2026-06-18T11:18:00.0319968Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-18T11:18:00.0320058Z               "line": 164
2026-06-18T11:18:00.0320139Z             },
2026-06-18T11:18:00.0320226Z             {
2026-06-18T11:18:00.0320326Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-18T11:18:00.0320411Z               "line": 198
2026-06-18T11:18:00.0320502Z             },
2026-06-18T11:18:00.0320583Z             {
2026-06-18T11:18:00.0320702Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-18T11:18:00.0320783Z               "line": 220
2026-06-18T11:18:00.0320875Z             }
2026-06-18T11:18:00.0320959Z           ]
2026-06-18T11:18:00.0321041Z         }
2026-06-18T11:18:00.0321127Z       }
2026-06-18T11:18:00.0321218Z     },
2026-06-18T11:18:00.0321293Z     {
2026-06-18T11:18:00.0321394Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-18T11:18:00.0322682Z       "title": "Advertisement-epoch reset strands a node: peers' higher last-seen epoch drops the reset node's fresh advertisements as Stale until the counter outruns history. Common case (full reinstall/re-pair) is mitigated by REQ-SUBNET-7's ceremony eviction (peer-side epoch memory dies with the deleted row — acceptance-verified); the residual narrow slice (epoch file lost, identity kept) is documented, guard deferred to a field hit (4.11)",
2026-06-18T11:18:00.0322784Z       "requiredStages": [],
2026-06-18T11:18:00.0322874Z       "stages": {
2026-06-18T11:18:00.0322973Z         "doc": {
2026-06-18T11:18:00.0323059Z           "complete": true,
2026-06-18T11:18:00.0323150Z           "evidence": [
2026-06-18T11:18:00.0323235Z             {
2026-06-18T11:18:00.0323340Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T11:18:00.0323423Z               "line": 165
2026-06-18T11:18:00.0323503Z             }
2026-06-18T11:18:00.0323698Z           ]
2026-06-18T11:18:00.0323785Z         },
2026-06-18T11:18:00.0323874Z         "impl": {
2026-06-18T11:18:00.0323960Z           "complete": false,
2026-06-18T11:18:00.0324047Z           "evidence": []
2026-06-18T11:18:00.0324123Z         },
2026-06-18T11:18:00.0324203Z         "int": {
2026-06-18T11:18:00.0324302Z           "complete": false,
2026-06-18T11:18:00.0324388Z           "evidence": []
2026-06-18T11:18:00.0324473Z         },
2026-06-18T11:18:00.0324557Z         "unit": {
2026-06-18T11:18:00.0324652Z           "complete": false,
2026-06-18T11:18:00.0324739Z           "evidence": []
2026-06-18T11:18:00.0324826Z         }
2026-06-18T11:18:00.0325016Z       }
2026-06-18T11:18:00.0325097Z     },
2026-06-18T11:18:00.0325183Z     {
2026-06-18T11:18:00.0325296Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-18T11:18:00.0325512Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-18T11:18:00.0325597Z       "requiredStages": [
2026-06-18T11:18:00.0325679Z         "impl",
2026-06-18T11:18:00.0325759Z         "unit"
2026-06-18T11:18:00.0325845Z       ],
2026-06-18T11:18:00.0325926Z       "stages": {
2026-06-18T11:18:00.0326008Z         "doc": {
2026-06-18T11:18:00.0326102Z           "complete": false,
2026-06-18T11:18:00.0326183Z           "evidence": []
2026-06-18T11:18:00.0326270Z         },
2026-06-18T11:18:00.0326352Z         "impl": {
2026-06-18T11:18:00.0326450Z           "complete": true,
2026-06-18T11:18:00.0326541Z           "evidence": [
2026-06-18T11:18:00.0326619Z             {
2026-06-18T11:18:00.0326746Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-18T11:18:00.0326837Z               "line": 76
2026-06-18T11:18:00.0326919Z             },
2026-06-18T11:18:00.0327005Z             {
2026-06-18T11:18:00.0327117Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-18T11:18:00.0327212Z               "line": 167
2026-06-18T11:18:00.0327299Z             },
2026-06-18T11:18:00.0327399Z             {
2026-06-18T11:18:00.0327503Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-18T11:18:00.0327594Z               "line": 233
2026-06-18T11:18:00.0327670Z             },
2026-06-18T11:18:00.0327751Z             {
2026-06-18T11:18:00.0327856Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-18T11:18:00.0327948Z               "line": 272
2026-06-18T11:18:00.0328024Z             }
2026-06-18T11:18:00.0328108Z           ]
2026-06-18T11:18:00.0328185Z         },
2026-06-18T11:18:00.0328267Z         "int": {
2026-06-18T11:18:00.0328362Z           "complete": false,
2026-06-18T11:18:00.0328457Z           "evidence": []
2026-06-18T11:18:00.0328539Z         },
2026-06-18T11:18:00.0328620Z         "unit": {
2026-06-18T11:18:00.0328710Z           "complete": true,
2026-06-18T11:18:00.0328800Z           "evidence": [
2026-06-18T11:18:00.0328883Z             {
2026-06-18T11:18:00.0329062Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-18T11:18:00.0329154Z               "line": 321
2026-06-18T11:18:00.0329245Z             },
2026-06-18T11:18:00.0329324Z             {
2026-06-18T11:18:00.0329428Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-18T11:18:00.0329524Z               "line": 329
2026-06-18T11:18:00.0329604Z             },
2026-06-18T11:18:00.0329684Z             {
2026-06-18T11:18:00.0329794Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-18T11:18:00.0329870Z               "line": 356
2026-06-18T11:18:00.0329960Z             },
2026-06-18T11:18:00.0330041Z             {
2026-06-18T11:18:00.0330156Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-18T11:18:00.0330242Z               "line": 395
2026-06-18T11:18:00.0330327Z             },
2026-06-18T11:18:00.0330423Z             {
2026-06-18T11:18:00.0330524Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-18T11:18:00.0330604Z               "line": 406
2026-06-18T11:18:00.0330685Z             },
2026-06-18T11:18:00.0330767Z             {
2026-06-18T11:18:00.0330995Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-18T11:18:00.0331072Z               "line": 418
2026-06-18T11:18:00.0331153Z             },
2026-06-18T11:18:00.0331239Z             {
2026-06-18T11:18:00.0331357Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-18T11:18:00.0331450Z               "line": 442
2026-06-18T11:18:00.0331529Z             }
2026-06-18T11:18:00.0331610Z           ]
2026-06-18T11:18:00.0331692Z         }
2026-06-18T11:18:00.0331769Z       }
2026-06-18T11:18:00.0331853Z     },
2026-06-18T11:18:00.0331935Z     {
2026-06-18T11:18:00.0332035Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-18T11:18:00.0332182Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-18T11:18:00.0332377Z       "requiredStages": [
2026-06-18T11:18:00.0332462Z         "impl",
2026-06-18T11:18:00.0332551Z         "int"
2026-06-18T11:18:00.0332636Z       ],
2026-06-18T11:18:00.0332714Z       "stages": {
2026-06-18T11:18:00.0332800Z         "doc": {
2026-06-18T11:18:00.0332904Z           "complete": false,
2026-06-18T11:18:00.0332999Z           "evidence": []
2026-06-18T11:18:00.0333076Z         },
2026-06-18T11:18:00.0333166Z         "impl": {
2026-06-18T11:18:00.0333251Z           "complete": true,
2026-06-18T11:18:00.0333344Z           "evidence": [
2026-06-18T11:18:00.0333429Z             {
2026-06-18T11:18:00.0333557Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T11:18:00.0333638Z               "line": 22
2026-06-18T11:18:00.0333720Z             }
2026-06-18T11:18:00.0333800Z           ]
2026-06-18T11:18:00.0333886Z         },
2026-06-18T11:18:00.0333968Z         "int": {
2026-06-18T11:18:00.0334068Z           "complete": true,
2026-06-18T11:18:00.0334153Z           "evidence": [
2026-06-18T11:18:00.0334239Z             {
2026-06-18T11:18:00.0334364Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-18T11:18:00.0334453Z               "line": 18
2026-06-18T11:18:00.0334530Z             }
2026-06-18T11:18:00.0334622Z           ]
2026-06-18T11:18:00.0334702Z         },
2026-06-18T11:18:00.0334791Z         "unit": {
2026-06-18T11:18:00.0334886Z           "complete": false,
2026-06-18T11:18:00.0334981Z           "evidence": []
2026-06-18T11:18:00.0335061Z         }
2026-06-18T11:18:00.0335146Z       }
2026-06-18T11:18:00.0335227Z     },
2026-06-18T11:18:00.0335309Z     {
2026-06-18T11:18:00.0335433Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-18T11:18:00.0335614Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-18T11:18:00.0335710Z       "requiredStages": [
2026-06-18T11:18:00.0335799Z         "impl",
2026-06-18T11:18:00.0335886Z         "unit"
2026-06-18T11:18:00.0335986Z       ],
2026-06-18T11:18:00.0336072Z       "stages": {
2026-06-18T11:18:00.0336162Z         "doc": {
2026-06-18T11:18:00.0336258Z           "complete": false,
2026-06-18T11:18:00.0336348Z           "evidence": []
2026-06-18T11:18:00.0336429Z         },
2026-06-18T11:18:00.0336515Z         "impl": {
2026-06-18T11:18:00.0336620Z           "complete": true,
2026-06-18T11:18:00.0336706Z           "evidence": [
2026-06-18T11:18:00.0336791Z             {
2026-06-18T11:18:00.0336916Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.0336996Z               "line": 465
2026-06-18T11:18:00.0337082Z             },
2026-06-18T11:18:00.0337160Z             {
2026-06-18T11:18:00.0337283Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-18T11:18:00.0337374Z               "line": 27
2026-06-18T11:18:00.0337450Z             }
2026-06-18T11:18:00.0337536Z           ]
2026-06-18T11:18:00.0337616Z         },
2026-06-18T11:18:00.0337696Z         "int": {
2026-06-18T11:18:00.0337792Z           "complete": false,
2026-06-18T11:18:00.0337888Z           "evidence": []
2026-06-18T11:18:00.0337973Z         },
2026-06-18T11:18:00.0338063Z         "unit": {
2026-06-18T11:18:00.0338159Z           "complete": true,
2026-06-18T11:18:00.0338240Z           "evidence": [
2026-06-18T11:18:00.0338411Z             {
2026-06-18T11:18:00.0338536Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.0338622Z               "line": 990
2026-06-18T11:18:00.0338712Z             },
2026-06-18T11:18:00.0338789Z             {
2026-06-18T11:18:00.0338907Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-18T11:18:00.0339060Z               "line": 181
2026-06-18T11:18:00.0339147Z             }
2026-06-18T11:18:00.0339227Z           ]
2026-06-18T11:18:00.0339322Z         }
2026-06-18T11:18:00.0339400Z       }
2026-06-18T11:18:00.0339485Z     },
2026-06-18T11:18:00.0339560Z     {
2026-06-18T11:18:00.0339676Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-18T11:18:00.0339937Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-18T11:18:00.0340032Z       "requiredStages": [
2026-06-18T11:18:00.0340118Z         "impl",
2026-06-18T11:18:00.0340210Z         "unit"
2026-06-18T11:18:00.0340287Z       ],
2026-06-18T11:18:00.0340377Z       "stages": {
2026-06-18T11:18:00.0340459Z         "doc": {
2026-06-18T11:18:00.0340559Z           "complete": false,
2026-06-18T11:18:00.0340644Z           "evidence": []
2026-06-18T11:18:00.0340721Z         },
2026-06-18T11:18:00.0340807Z         "impl": {
2026-06-18T11:18:00.0340906Z           "complete": true,
2026-06-18T11:18:00.0341003Z           "evidence": [
2026-06-18T11:18:00.0341084Z             {
2026-06-18T11:18:00.0341207Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0341293Z               "line": 73
2026-06-18T11:18:00.0341375Z             },
2026-06-18T11:18:00.0341455Z             {
2026-06-18T11:18:00.0341574Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0341661Z               "line": 972
2026-06-18T11:18:00.0341741Z             },
2026-06-18T11:18:00.0341827Z             {
2026-06-18T11:18:00.0341937Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-18T11:18:00.0342033Z               "line": 20
2026-06-18T11:18:00.0342127Z             },
2026-06-18T11:18:00.0342208Z             {
2026-06-18T11:18:00.0342320Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-18T11:18:00.0342404Z               "line": 100
2026-06-18T11:18:00.0342490Z             },
2026-06-18T11:18:00.0342567Z             {
2026-06-18T11:18:00.0342686Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-18T11:18:00.0342780Z               "line": 577
2026-06-18T11:18:00.0342865Z             },
2026-06-18T11:18:00.0342951Z             {
2026-06-18T11:18:00.0343073Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-18T11:18:00.0343159Z               "line": 68
2026-06-18T11:18:00.0343244Z             },
2026-06-18T11:18:00.0343331Z             {
2026-06-18T11:18:00.0343459Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-18T11:18:00.0343545Z               "line": 80
2026-06-18T11:18:00.0343636Z             }
2026-06-18T11:18:00.0343726Z           ]
2026-06-18T11:18:00.0343807Z         },
2026-06-18T11:18:00.0343899Z         "int": {
2026-06-18T11:18:00.0343994Z           "complete": true,
2026-06-18T11:18:00.0344093Z           "evidence": [
2026-06-18T11:18:00.0344170Z             {
2026-06-18T11:18:00.0344289Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-18T11:18:00.0344370Z               "line": 44
2026-06-18T11:18:00.0344460Z             }
2026-06-18T11:18:00.0344538Z           ]
2026-06-18T11:18:00.0344628Z         },
2026-06-18T11:18:00.0344713Z         "unit": {
2026-06-18T11:18:00.0344809Z           "complete": true,
2026-06-18T11:18:00.0344891Z           "evidence": [
2026-06-18T11:18:00.0344975Z             {
2026-06-18T11:18:00.0345095Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0345201Z               "line": 1181
2026-06-18T11:18:00.0345286Z             },
2026-06-18T11:18:00.0345380Z             {
2026-06-18T11:18:00.0345499Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.0345593Z               "line": 1197
2026-06-18T11:18:00.0345787Z             },
2026-06-18T11:18:00.0345869Z             {
2026-06-18T11:18:00.0345993Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.0346083Z               "line": 1563
2026-06-18T11:18:00.0346174Z             },
2026-06-18T11:18:00.0346260Z             {
2026-06-18T11:18:00.0346364Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-18T11:18:00.0346436Z               "line": 152
2026-06-18T11:18:00.0346517Z             },
2026-06-18T11:18:00.0346598Z             {
2026-06-18T11:18:00.0346712Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-18T11:18:00.0346808Z               "line": 175
2026-06-18T11:18:00.0346970Z             },
2026-06-18T11:18:00.0347051Z             {
2026-06-18T11:18:00.0347166Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-18T11:18:00.0347261Z               "line": 186
2026-06-18T11:18:00.0347337Z             },
2026-06-18T11:18:00.0347420Z             {
2026-06-18T11:18:00.0347542Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-18T11:18:00.0347628Z               "line": 202
2026-06-18T11:18:00.0347710Z             },
2026-06-18T11:18:00.0347787Z             {
2026-06-18T11:18:00.0347895Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-18T11:18:00.0347981Z               "line": 216
2026-06-18T11:18:00.0348064Z             },
2026-06-18T11:18:00.0348148Z             {
2026-06-18T11:18:00.0348271Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-18T11:18:00.0348361Z               "line": 137
2026-06-18T11:18:00.0348448Z             },
2026-06-18T11:18:00.0348543Z             {
2026-06-18T11:18:00.0348681Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0348768Z               "line": 7963
2026-06-18T11:18:00.0348858Z             },
2026-06-18T11:18:00.0348928Z             {
2026-06-18T11:18:00.0349134Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-18T11:18:00.0349219Z               "line": 30
2026-06-18T11:18:00.0349301Z             },
2026-06-18T11:18:00.0349397Z             {
2026-06-18T11:18:00.0349502Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-18T11:18:00.0349596Z               "line": 73
2026-06-18T11:18:00.0349678Z             }
2026-06-18T11:18:00.0349773Z           ]
2026-06-18T11:18:00.0349854Z         }
2026-06-18T11:18:00.0349935Z       }
2026-06-18T11:18:00.0350017Z     },
2026-06-18T11:18:00.0350102Z     {
2026-06-18T11:18:00.0350226Z       "id": "REQ-HAZARD-HOSTED-LIVENESS-RECONCILE",
2026-06-18T11:18:00.0354144Z       "title": "B2 KEYSTONE: a daemon-hosted (spt-hosted) endpoint's info.json status is RECONCILED to real liveness, not left latched online. The broker exit-waiter (broker.rs:889-910) reaps its in-mem session table + emits ExitEvent but NEVER touches info.json; lifecycle::mark_offline only fires on Psyche teardown — so a dead/exited harness (operator closed the tab) stays status=online forever (is_perch_alive returns ONLINE for daemon-hosted, liveness.rs:80-93). FIX (doyle ruled PULL-PRIMARY — the live-status analog of REQ-HAZARD-ROSTER-GHOST): the livehost reconcile loop (reconcile_once livehost.rs:226-313) queries the broker's live session set (KIND_SESSIONS) each tick and, for any status=online live_agent perch PAST the boot grace whose endpoint has NO live broker session, marks it offline (lifecycle::mark_offline → status=offline → is_perch_alive=false). GATED on spt-hosted (controllable==Some(true)) so a HARNESS-HOSTED relay live agent (api listen, legitimately online with no broker session) is NEVER mis-marked. Crash-robust + self-healing on the next tick (clear-on-event is not crash-robust alone). PUSH (brain ExitEvent→mark_offline) is an OPTIONAL fast-path only if the daemon brain is reliably subscribed to all hosted sessions; correctness rides the pull. Broker stays stateless (ADR-0004 §B — brain owns the info.json write). (v0.12.0)",
2026-06-18T11:18:00.0354273Z       "requiredStages": [
2026-06-18T11:18:00.0354353Z         "impl",
2026-06-18T11:18:00.0354558Z         "unit",
2026-06-18T11:18:00.0354648Z         "int"
2026-06-18T11:18:00.0354735Z       ],
2026-06-18T11:18:00.0354826Z       "stages": {
2026-06-18T11:18:00.0354911Z         "doc": {
2026-06-18T11:18:00.0355002Z           "complete": false,
2026-06-18T11:18:00.0355093Z           "evidence": []
2026-06-18T11:18:00.0355178Z         },
2026-06-18T11:18:00.0355264Z         "impl": {
2026-06-18T11:18:00.0355364Z           "complete": true,
2026-06-18T11:18:00.0355461Z           "evidence": [
2026-06-18T11:18:00.0355540Z             {
2026-06-18T11:18:00.0355669Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0355752Z               "line": 510
2026-06-18T11:18:00.0355940Z             },
2026-06-18T11:18:00.0356026Z             {
2026-06-18T11:18:00.0356153Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0356253Z               "line": 692
2026-06-18T11:18:00.0356338Z             }
2026-06-18T11:18:00.0356429Z           ]
2026-06-18T11:18:00.0356520Z         },
2026-06-18T11:18:00.0356609Z         "int": {
2026-06-18T11:18:00.0356706Z           "complete": true,
2026-06-18T11:18:00.0356801Z           "evidence": [
2026-06-18T11:18:00.0356886Z             {
2026-06-18T11:18:00.0357006Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0357101Z               "line": 1048
2026-06-18T11:18:00.0357187Z             }
2026-06-18T11:18:00.0357272Z           ]
2026-06-18T11:18:00.0357364Z         },
2026-06-18T11:18:00.0357449Z         "unit": {
2026-06-18T11:18:00.0357544Z           "complete": true,
2026-06-18T11:18:00.0357635Z           "evidence": [
2026-06-18T11:18:00.0357721Z             {
2026-06-18T11:18:00.0357850Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0357941Z               "line": 809
2026-06-18T11:18:00.0358032Z             }
2026-06-18T11:18:00.0358116Z           ]
2026-06-18T11:18:00.0358207Z         }
2026-06-18T11:18:00.0358290Z       }
2026-06-18T11:18:00.0358379Z     },
2026-06-18T11:18:00.0358474Z     {
2026-06-18T11:18:00.0358590Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-18T11:18:00.0358845Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-18T11:18:00.0359037Z       "requiredStages": [
2026-06-18T11:18:00.0359127Z         "impl",
2026-06-18T11:18:00.0359212Z         "unit"
2026-06-18T11:18:00.0359299Z       ],
2026-06-18T11:18:00.0359385Z       "stages": {
2026-06-18T11:18:00.0359469Z         "doc": {
2026-06-18T11:18:00.0359566Z           "complete": true,
2026-06-18T11:18:00.0359652Z           "evidence": [
2026-06-18T11:18:00.0359733Z             {
2026-06-18T11:18:00.0359851Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T11:18:00.0359947Z               "line": 133
2026-06-18T11:18:00.0360027Z             }
2026-06-18T11:18:00.0360109Z           ]
2026-06-18T11:18:00.0360195Z         },
2026-06-18T11:18:00.0360276Z         "impl": {
2026-06-18T11:18:00.0360371Z           "complete": true,
2026-06-18T11:18:00.0360466Z           "evidence": [
2026-06-18T11:18:00.0360549Z             {
2026-06-18T11:18:00.0360662Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T11:18:00.0360752Z               "line": 65
2026-06-18T11:18:00.0360839Z             },
2026-06-18T11:18:00.0360925Z             {
2026-06-18T11:18:00.0361047Z               "path": "crates/spt-proto/src/id.rs",
2026-06-18T11:18:00.0361128Z               "line": 17
2026-06-18T11:18:00.0361209Z             },
2026-06-18T11:18:00.0361289Z             {
2026-06-18T11:18:00.0361407Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T11:18:00.0361503Z               "line": 146
2026-06-18T11:18:00.0361584Z             },
2026-06-18T11:18:00.0361669Z             {
2026-06-18T11:18:00.0361788Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.0361889Z               "line": 286
2026-06-18T11:18:00.0361975Z             },
2026-06-18T11:18:00.0362070Z             {
2026-06-18T11:18:00.0362290Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.0362370Z               "line": 417
2026-06-18T11:18:00.0362462Z             },
2026-06-18T11:18:00.0362547Z             {
2026-06-18T11:18:00.0362651Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T11:18:00.0362732Z               "line": 32
2026-06-18T11:18:00.0362824Z             },
2026-06-18T11:18:00.0362914Z             {
2026-06-18T11:18:00.0363019Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0363115Z               "line": 1264
2026-06-18T11:18:00.0363196Z             },
2026-06-18T11:18:00.0363277Z             {
2026-06-18T11:18:00.0363377Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0363566Z               "line": 6000
2026-06-18T11:18:00.0363653Z             },
2026-06-18T11:18:00.0363735Z             {
2026-06-18T11:18:00.0363844Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0363924Z               "line": 6282
2026-06-18T11:18:00.0364014Z             }
2026-06-18T11:18:00.0364096Z           ]
2026-06-18T11:18:00.0364180Z         },
2026-06-18T11:18:00.0364260Z         "int": {
2026-06-18T11:18:00.0364356Z           "complete": false,
2026-06-18T11:18:00.0364451Z           "evidence": []
2026-06-18T11:18:00.0364532Z         },
2026-06-18T11:18:00.0364622Z         "unit": {
2026-06-18T11:18:00.0364714Z           "complete": true,
2026-06-18T11:18:00.0364809Z           "evidence": [
2026-06-18T11:18:00.0364894Z             {
2026-06-18T11:18:00.0365004Z               "path": "crates/spt-proto/src/id.rs",
2026-06-18T11:18:00.0365099Z               "line": 94
2026-06-18T11:18:00.0365185Z             },
2026-06-18T11:18:00.0365280Z             {
2026-06-18T11:18:00.0365382Z               "path": "crates/spt-proto/src/id.rs",
2026-06-18T11:18:00.0365476Z               "line": 111
2026-06-18T11:18:00.0365562Z             },
2026-06-18T11:18:00.0365643Z             {
2026-06-18T11:18:00.0365752Z               "path": "crates/spt-proto/src/id.rs",
2026-06-18T11:18:00.0365843Z               "line": 124
2026-06-18T11:18:00.0365919Z             },
2026-06-18T11:18:00.0366006Z             {
2026-06-18T11:18:00.0366119Z               "path": "crates/spt-proto/src/id.rs",
2026-06-18T11:18:00.0366206Z               "line": 134
2026-06-18T11:18:00.0366287Z             },
2026-06-18T11:18:00.0366378Z             {
2026-06-18T11:18:00.0366481Z               "path": "crates/spt-proto/src/id.rs",
2026-06-18T11:18:00.0366576Z               "line": 144
2026-06-18T11:18:00.0366662Z             },
2026-06-18T11:18:00.0366737Z             {
2026-06-18T11:18:00.0366845Z               "path": "crates/spt-proto/src/id.rs",
2026-06-18T11:18:00.0366936Z               "line": 156
2026-06-18T11:18:00.0367023Z             },
2026-06-18T11:18:00.0367108Z             {
2026-06-18T11:18:00.0367232Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.0367323Z               "line": 746
2026-06-18T11:18:00.0367404Z             },
2026-06-18T11:18:00.0367494Z             {
2026-06-18T11:18:00.0367614Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T11:18:00.0367714Z               "line": 309
2026-06-18T11:18:00.0367794Z             }
2026-06-18T11:18:00.0367876Z           ]
2026-06-18T11:18:00.0367966Z         }
2026-06-18T11:18:00.0368052Z       }
2026-06-18T11:18:00.0368138Z     },
2026-06-18T11:18:00.0368220Z     {
2026-06-18T11:18:00.0368324Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-18T11:18:00.0368453Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-18T11:18:00.0368564Z       "requiredStages": [
2026-06-18T11:18:00.0368658Z         "impl",
2026-06-18T11:18:00.0368734Z         "unit"
2026-06-18T11:18:00.0368835Z       ],
2026-06-18T11:18:00.0368930Z       "stages": {
2026-06-18T11:18:00.0369092Z         "doc": {
2026-06-18T11:18:00.0369193Z           "complete": false,
2026-06-18T11:18:00.0369287Z           "evidence": []
2026-06-18T11:18:00.0369367Z         },
2026-06-18T11:18:00.0369448Z         "impl": {
2026-06-18T11:18:00.0369649Z           "complete": true,
2026-06-18T11:18:00.0369738Z           "evidence": [
2026-06-18T11:18:00.0369830Z             {
2026-06-18T11:18:00.0369935Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T11:18:00.0370030Z               "line": 128
2026-06-18T11:18:00.0370131Z             }
2026-06-18T11:18:00.0370254Z           ]
2026-06-18T11:18:00.0372831Z         },
2026-06-18T11:18:00.0372944Z         "int": {
2026-06-18T11:18:00.0373050Z           "complete": false,
2026-06-18T11:18:00.0373145Z           "evidence": []
2026-06-18T11:18:00.0373221Z         },
2026-06-18T11:18:00.0373341Z         "unit": {
2026-06-18T11:18:00.0373608Z           "complete": true,
2026-06-18T11:18:00.0373704Z           "evidence": [
2026-06-18T11:18:00.0373779Z             {
2026-06-18T11:18:00.0373908Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T11:18:00.0374005Z               "line": 205
2026-06-18T11:18:00.0374089Z             }
2026-06-18T11:18:00.0374180Z           ]
2026-06-18T11:18:00.0374257Z         }
2026-06-18T11:18:00.0374338Z       }
2026-06-18T11:18:00.0374423Z     },
2026-06-18T11:18:00.0374508Z     {
2026-06-18T11:18:00.0374627Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-18T11:18:00.0374787Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-18T11:18:00.0374882Z       "requiredStages": [
2026-06-18T11:18:00.0374973Z         "impl",
2026-06-18T11:18:00.0375060Z         "unit"
2026-06-18T11:18:00.0375139Z       ],
2026-06-18T11:18:00.0375220Z       "stages": {
2026-06-18T11:18:00.0375298Z         "doc": {
2026-06-18T11:18:00.0375403Z           "complete": false,
2026-06-18T11:18:00.0375502Z           "evidence": []
2026-06-18T11:18:00.0375584Z         },
2026-06-18T11:18:00.0375678Z         "impl": {
2026-06-18T11:18:00.0375768Z           "complete": true,
2026-06-18T11:18:00.0375855Z           "evidence": [
2026-06-18T11:18:00.0375942Z             {
2026-06-18T11:18:00.0376060Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:18:00.0376151Z               "line": 342
2026-06-18T11:18:00.0376237Z             },
2026-06-18T11:18:00.0376322Z             {
2026-06-18T11:18:00.0376431Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:18:00.0376528Z               "line": 353
2026-06-18T11:18:00.0376609Z             },
2026-06-18T11:18:00.0376693Z             {
2026-06-18T11:18:00.0376799Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:18:00.0376886Z               "line": 371
2026-06-18T11:18:00.0376966Z             }
2026-06-18T11:18:00.0377051Z           ]
2026-06-18T11:18:00.0377131Z         },
2026-06-18T11:18:00.0377218Z         "int": {
2026-06-18T11:18:00.0377320Z           "complete": false,
2026-06-18T11:18:00.0377406Z           "evidence": []
2026-06-18T11:18:00.0377496Z         },
2026-06-18T11:18:00.0377578Z         "unit": {
2026-06-18T11:18:00.0377663Z           "complete": true,
2026-06-18T11:18:00.0377758Z           "evidence": [
2026-06-18T11:18:00.0377836Z             {
2026-06-18T11:18:00.0377945Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:18:00.0378025Z               "line": 395
2026-06-18T11:18:00.0378102Z             },
2026-06-18T11:18:00.0378189Z             {
2026-06-18T11:18:00.0378293Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:18:00.0378388Z               "line": 416
2026-06-18T11:18:00.0378461Z             },
2026-06-18T11:18:00.0378564Z             {
2026-06-18T11:18:00.0378669Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:18:00.0378756Z               "line": 785
2026-06-18T11:18:00.0378846Z             },
2026-06-18T11:18:00.0378927Z             {
2026-06-18T11:18:00.0379114Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:18:00.0379198Z               "line": 796
2026-06-18T11:18:00.0379285Z             },
2026-06-18T11:18:00.0379361Z             {
2026-06-18T11:18:00.0379481Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:18:00.0379676Z               "line": 809
2026-06-18T11:18:00.0379753Z             }
2026-06-18T11:18:00.0379838Z           ]
2026-06-18T11:18:00.0379923Z         }
2026-06-18T11:18:00.0380008Z       }
2026-06-18T11:18:00.0380095Z     },
2026-06-18T11:18:00.0380176Z     {
2026-06-18T11:18:00.0380280Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-18T11:18:00.0380843Z       "title": "Scheduling never subtracts a Duration from Instant::now() (underflow-panics on a host booted more recently than the offset); 'due now / never run' is Option<Instant>=None gated on forward duration_since only (5.9)",
2026-06-18T11:18:00.0380942Z       "requiredStages": [
2026-06-18T11:18:00.0381035Z         "impl",
2026-06-18T11:18:00.0381234Z         "unit"
2026-06-18T11:18:00.0381315Z       ],
2026-06-18T11:18:00.0381396Z       "stages": {
2026-06-18T11:18:00.0381472Z         "doc": {
2026-06-18T11:18:00.0381572Z           "complete": false,
2026-06-18T11:18:00.0381664Z           "evidence": []
2026-06-18T11:18:00.0381740Z         },
2026-06-18T11:18:00.0381829Z         "impl": {
2026-06-18T11:18:00.0381930Z           "complete": true,
2026-06-18T11:18:00.0382012Z           "evidence": [
2026-06-18T11:18:00.0382101Z             {
2026-06-18T11:18:00.0382229Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:18:00.0382320Z               "line": 759
2026-06-18T11:18:00.0382405Z             }
2026-06-18T11:18:00.0382489Z           ]
2026-06-18T11:18:00.0382575Z         },
2026-06-18T11:18:00.0382656Z         "int": {
2026-06-18T11:18:00.0382752Z           "complete": false,
2026-06-18T11:18:00.0382837Z           "evidence": []
2026-06-18T11:18:00.0382923Z         },
2026-06-18T11:18:00.0383020Z         "unit": {
2026-06-18T11:18:00.0383105Z           "complete": true,
2026-06-18T11:18:00.0383190Z           "evidence": [
2026-06-18T11:18:00.0383277Z             {
2026-06-18T11:18:00.0383405Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:18:00.0383490Z               "line": 873
2026-06-18T11:18:00.0383578Z             }
2026-06-18T11:18:00.0383668Z           ]
2026-06-18T11:18:00.0383748Z         }
2026-06-18T11:18:00.0383834Z       }
2026-06-18T11:18:00.0383911Z     },
2026-06-18T11:18:00.0383991Z     {
2026-06-18T11:18:00.0384124Z       "id": "REQ-HAZARD-LIVEHOST-BOOT-LIVENESS-GATE",
2026-06-18T11:18:00.0386468Z       "title": "B5: `spt daemon start` does NOT revive phantom Psyches for dead-but-online-latched perches. Today reconcile_once (livehost.rs:285) spawns a Psyche per status=online live_agent perch at boot WITHOUT verifying the harness child / {id}-psyche is actually alive — so a Cold start after an unclean stop revives N psyches for N dead-but-latched perches (3 psyches for 3 dead perches). FIX: gate the boot psyche-spawn on real child-liveness — a perch with NO live broker session (the B2 reconcile signal) is marked OFFLINE at boot instead of hosted, so a dead-harness perch is never revived. Shares the B2 reconcile loop (this is its boot-gate arm); composes with B2's honest latch. Also closes wall-a's psyche_host_error gap (residency-confirm does not run at boot tick-1, livehost.rs:395-441 / 257-263). (v0.12.0)",
2026-06-18T11:18:00.0386591Z       "requiredStages": [
2026-06-18T11:18:00.0386667Z         "impl",
2026-06-18T11:18:00.0386754Z         "unit",
2026-06-18T11:18:00.0386840Z         "int"
2026-06-18T11:18:00.0386920Z       ],
2026-06-18T11:18:00.0387001Z       "stages": {
2026-06-18T11:18:00.0387079Z         "doc": {
2026-06-18T11:18:00.0387179Z           "complete": false,
2026-06-18T11:18:00.0387258Z           "evidence": []
2026-06-18T11:18:00.0387345Z         },
2026-06-18T11:18:00.0387432Z         "impl": {
2026-06-18T11:18:00.0387526Z           "complete": true,
2026-06-18T11:18:00.0387625Z           "evidence": [
2026-06-18T11:18:00.0387711Z             {
2026-06-18T11:18:00.0387834Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0387928Z               "line": 693
2026-06-18T11:18:00.0388008Z             }
2026-06-18T11:18:00.0388095Z           ]
2026-06-18T11:18:00.0388252Z         },
2026-06-18T11:18:00.0388333Z         "int": {
2026-06-18T11:18:00.0388425Z           "complete": true,
2026-06-18T11:18:00.0388510Z           "evidence": [
2026-06-18T11:18:00.0388595Z             {
2026-06-18T11:18:00.0388735Z               "path": "crates/spt/tests/livehost_bootgate_e2e.rs",
2026-06-18T11:18:00.0388835Z               "line": 24
2026-06-18T11:18:00.0388910Z             }
2026-06-18T11:18:00.0389059Z           ]
2026-06-18T11:18:00.0389148Z         },
2026-06-18T11:18:00.0389239Z         "unit": {
2026-06-18T11:18:00.0389326Z           "complete": true,
2026-06-18T11:18:00.0389416Z           "evidence": [
2026-06-18T11:18:00.0389606Z             {
2026-06-18T11:18:00.0389736Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0389831Z               "line": 859
2026-06-18T11:18:00.0389916Z             }
2026-06-18T11:18:00.0390004Z           ]
2026-06-18T11:18:00.0390088Z         }
2026-06-18T11:18:00.0390164Z       }
2026-06-18T11:18:00.0390271Z     },
2026-06-18T11:18:00.0390356Z     {
2026-06-18T11:18:00.0390478Z       "id": "REQ-HAZARD-LIVEHOST-BOOT-RACE",
2026-06-18T11:18:00.0393993Z       "title": "The brain's daemon-hosted Psyche lifecycle surfaces a host-FAILURE on the live perch (harness-diagnosable) and runs net-INDEPENDENTLY. When reconcile_once→host_one→spawn_psyche fails for a state=live_agent+status=online endpoint (e.g. the adapter's psyche binary absent from its install dir, REQ-INSTALL-11), the failure MUST be written to the perch info.json as a CURRENT-STATE field (reason + ts + attempt count; overwritten each 5s retry, CLEARED on successful host) and surfaced by `spt endpoint list`/status — never left as an eprintln on the brain's invisible stderr where a harness reading only perch state is blind. status=online stays authoritative (agent reachable; only the Psyche is missing — brain-restart rehydrate legitimately has online-without-Psyche windows), so this is a SEPARATE psyche-host-health field, never a status de-stamp. Net-independence is a locked-in invariant: spawn_live_host (brainproc.rs:230) reaches the reconcile and hosts the Psyche on a net-less/unpaired/peer-pump-STALLED node, proven by a REAL detached-daemon E2E (real broker→brain-child, real api seed+listen, real install-dir psyche binary). spt-core SURFACES the failure; the adapter owns fixing its packaging.",
2026-06-18T11:18:00.0394128Z       "requiredStages": [
2026-06-18T11:18:00.0394218Z         "impl",
2026-06-18T11:18:00.0394303Z         "unit",
2026-06-18T11:18:00.0394384Z         "int"
2026-06-18T11:18:00.0394467Z       ],
2026-06-18T11:18:00.0394556Z       "stages": {
2026-06-18T11:18:00.0394632Z         "doc": {
2026-06-18T11:18:00.0394728Z           "complete": false,
2026-06-18T11:18:00.0394829Z           "evidence": []
2026-06-18T11:18:00.0394909Z         },
2026-06-18T11:18:00.0394990Z         "impl": {
2026-06-18T11:18:00.0395082Z           "complete": true,
2026-06-18T11:18:00.0395172Z           "evidence": [
2026-06-18T11:18:00.0395261Z             {
2026-06-18T11:18:00.0395387Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0395482Z               "line": 391
2026-06-18T11:18:00.0395567Z             },
2026-06-18T11:18:00.0395642Z             {
2026-06-18T11:18:00.0395757Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:18:00.0395841Z               "line": 318
2026-06-18T11:18:00.0395921Z             },
2026-06-18T11:18:00.0396007Z             {
2026-06-18T11:18:00.0396113Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0396217Z               "line": 1637
2026-06-18T11:18:00.0396297Z             },
2026-06-18T11:18:00.0396380Z             {
2026-06-18T11:18:00.0396489Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0396570Z               "line": 3049
2026-06-18T11:18:00.0396651Z             }
2026-06-18T11:18:00.0396733Z           ]
2026-06-18T11:18:00.0396823Z         },
2026-06-18T11:18:00.0396908Z         "int": {
2026-06-18T11:18:00.0397104Z           "complete": true,
2026-06-18T11:18:00.0397190Z           "evidence": [
2026-06-18T11:18:00.0397266Z             {
2026-06-18T11:18:00.0397400Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-18T11:18:00.0397489Z               "line": 353
2026-06-18T11:18:00.0397576Z             },
2026-06-18T11:18:00.0397654Z             {
2026-06-18T11:18:00.0397799Z               "path": "crates/spt/tests/livehost_psyche_fail_e2e.rs",
2026-06-18T11:18:00.0397890Z               "line": 23
2026-06-18T11:18:00.0397973Z             }
2026-06-18T11:18:00.0398054Z           ]
2026-06-18T11:18:00.0398138Z         },
2026-06-18T11:18:00.0398228Z         "unit": {
2026-06-18T11:18:00.0398390Z           "complete": true,
2026-06-18T11:18:00.0398488Z           "evidence": [
2026-06-18T11:18:00.0398573Z             {
2026-06-18T11:18:00.0398684Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:18:00.0398770Z               "line": 717
2026-06-18T11:18:00.0398864Z             },
2026-06-18T11:18:00.0399018Z             {
2026-06-18T11:18:00.0399122Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0399207Z               "line": 7702
2026-06-18T11:18:00.0399285Z             }
2026-06-18T11:18:00.0399380Z           ]
2026-06-18T11:18:00.0399455Z         }
2026-06-18T11:18:00.0399537Z       }
2026-06-18T11:18:00.0399619Z     },
2026-06-18T11:18:00.0399699Z     {
2026-06-18T11:18:00.0399818Z       "id": "REQ-HAZARD-LIVEHOST-NONRESIDENT",
2026-06-18T11:18:00.0403007Z       "title": "A daemon-hosted Psyche that spawns then EXITS IMMEDIATELY is a host failure, surfaced like a spawn failure (closes the v0.8.1 residual masking): the REQ-HAZARD-LIVEHOST-BOOT-RACE signal stamps `psyche_host_error` only when `spawn_psyche` returns Err, NOT when the detached spawn() returns Ok but the child dies within moments (e.g. a bad-argv child exiting 2 — the F-009 case). That leaves the residual 'online + no Psyche + no cause' gap: the nested `{id}-psyche` info.json is written status=online with a real-but-DEAD pid and the PARENT perch carries NO psyche_host_error (perri's F-010: tasklist showed 0 host procs across the window while info.json read online). The host MUST confirm RESIDENCY — a hosted child not alive (or whose `{id}-psyche` perch never re-registers / has a dead pid) within N seconds of spawn is treated as a host failure: stamp the parent perch `psyche_host_error{reason:\"host not resident within <n>s (psyche perch missing/dead pid)\"}` (and do not leave a phantom online nested perch). Closes the last masking gap the v0.8.1 fix left open. perri's F-010 (v0.8.1 dogfood). Sibling of REQ-HAZARD-LIVEHOST-BOOT-RACE.",
2026-06-18T11:18:00.0403128Z       "requiredStages": [
2026-06-18T11:18:00.0403231Z         "impl",
2026-06-18T11:18:00.0403316Z         "unit",
2026-06-18T11:18:00.0403402Z         "int"
2026-06-18T11:18:00.0403483Z       ],
2026-06-18T11:18:00.0403562Z       "stages": {
2026-06-18T11:18:00.0403652Z         "doc": {
2026-06-18T11:18:00.0403738Z           "complete": false,
2026-06-18T11:18:00.0403849Z           "evidence": []
2026-06-18T11:18:00.0403938Z         },
2026-06-18T11:18:00.0404025Z         "impl": {
2026-06-18T11:18:00.0404120Z           "complete": true,
2026-06-18T11:18:00.0404201Z           "evidence": [
2026-06-18T11:18:00.0404282Z             {
2026-06-18T11:18:00.0404407Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0404497Z               "line": 64
2026-06-18T11:18:00.0404582Z             },
2026-06-18T11:18:00.0404664Z             {
2026-06-18T11:18:00.0404783Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0404873Z               "line": 78
2026-06-18T11:18:00.0404968Z             },
2026-06-18T11:18:00.0405050Z             {
2026-06-18T11:18:00.0405169Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0405264Z               "line": 170
2026-06-18T11:18:00.0405342Z             },
2026-06-18T11:18:00.0405417Z             {
2026-06-18T11:18:00.0405536Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0405741Z               "line": 185
2026-06-18T11:18:00.0405817Z             },
2026-06-18T11:18:00.0405903Z             {
2026-06-18T11:18:00.0406028Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0406112Z               "line": 195
2026-06-18T11:18:00.0406202Z             },
2026-06-18T11:18:00.0406278Z             {
2026-06-18T11:18:00.0406387Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0406472Z               "line": 205
2026-06-18T11:18:00.0406562Z             },
2026-06-18T11:18:00.0406644Z             {
2026-06-18T11:18:00.0406763Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0406949Z               "line": 294
2026-06-18T11:18:00.0407035Z             },
2026-06-18T11:18:00.0407115Z             {
2026-06-18T11:18:00.0407230Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0407312Z               "line": 308
2026-06-18T11:18:00.0407407Z             },
2026-06-18T11:18:00.0407487Z             {
2026-06-18T11:18:00.0407603Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0407683Z               "line": 377
2026-06-18T11:18:00.0407769Z             },
2026-06-18T11:18:00.0407855Z             {
2026-06-18T11:18:00.0407960Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0408045Z               "line": 437
2026-06-18T11:18:00.0408126Z             },
2026-06-18T11:18:00.0408219Z             {
2026-06-18T11:18:00.0408332Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0408427Z               "line": 455
2026-06-18T11:18:00.0408504Z             }
2026-06-18T11:18:00.0408585Z           ]
2026-06-18T11:18:00.0408675Z         },
2026-06-18T11:18:00.0408755Z         "int": {
2026-06-18T11:18:00.0408850Z           "complete": true,
2026-06-18T11:18:00.0409025Z           "evidence": [
2026-06-18T11:18:00.0409110Z             {
2026-06-18T11:18:00.0409240Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-18T11:18:00.0409321Z               "line": 45
2026-06-18T11:18:00.0409424Z             },
2026-06-18T11:18:00.0409506Z             {
2026-06-18T11:18:00.0409636Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-18T11:18:00.0409720Z               "line": 354
2026-06-18T11:18:00.0409802Z             },
2026-06-18T11:18:00.0409888Z             {
2026-06-18T11:18:00.0410020Z               "path": "crates/spt/tests/livehost_nonresident_e2e.rs",
2026-06-18T11:18:00.0410107Z               "line": 31
2026-06-18T11:18:00.0410189Z             }
2026-06-18T11:18:00.0410283Z           ]
2026-06-18T11:18:00.0410369Z         },
2026-06-18T11:18:00.0410451Z         "unit": {
2026-06-18T11:18:00.0410546Z           "complete": true,
2026-06-18T11:18:00.0410636Z           "evidence": [
2026-06-18T11:18:00.0410717Z             {
2026-06-18T11:18:00.0410837Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0410931Z               "line": 715
2026-06-18T11:18:00.0411017Z             }
2026-06-18T11:18:00.0411119Z           ]
2026-06-18T11:18:00.0411199Z         }
2026-06-18T11:18:00.0411280Z       }
2026-06-18T11:18:00.0411366Z     },
2026-06-18T11:18:00.0411448Z     {
2026-06-18T11:18:00.0411560Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-18T11:18:00.0411765Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-18T11:18:00.0411866Z       "requiredStages": [
2026-06-18T11:18:00.0411951Z         "impl",
2026-06-18T11:18:00.0412032Z         "unit"
2026-06-18T11:18:00.0412114Z       ],
2026-06-18T11:18:00.0412213Z       "stages": {
2026-06-18T11:18:00.0412299Z         "doc": {
2026-06-18T11:18:00.0412381Z           "complete": false,
2026-06-18T11:18:00.0412480Z           "evidence": []
2026-06-18T11:18:00.0412565Z         },
2026-06-18T11:18:00.0412652Z         "impl": {
2026-06-18T11:18:00.0412748Z           "complete": true,
2026-06-18T11:18:00.0412957Z           "evidence": [
2026-06-18T11:18:00.0413039Z             {
2026-06-18T11:18:00.0413152Z               "path": "crates/spt/src/api/auth.rs",
2026-06-18T11:18:00.0413248Z               "line": 14
2026-06-18T11:18:00.0413335Z             },
2026-06-18T11:18:00.0413425Z             {
2026-06-18T11:18:00.0413524Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T11:18:00.0413605Z               "line": 566
2026-06-18T11:18:00.0413688Z             }
2026-06-18T11:18:00.0413767Z           ]
2026-06-18T11:18:00.0413853Z         },
2026-06-18T11:18:00.0413943Z         "int": {
2026-06-18T11:18:00.0414029Z           "complete": false,
2026-06-18T11:18:00.0414226Z           "evidence": []
2026-06-18T11:18:00.0414308Z         },
2026-06-18T11:18:00.0414404Z         "unit": {
2026-06-18T11:18:00.0414494Z           "complete": true,
2026-06-18T11:18:00.0414585Z           "evidence": [
2026-06-18T11:18:00.0414661Z             {
2026-06-18T11:18:00.0414770Z               "path": "crates/spt/src/api/auth.rs",
2026-06-18T11:18:00.0414874Z               "line": 130
2026-06-18T11:18:00.0414958Z             },
2026-06-18T11:18:00.0415047Z             {
2026-06-18T11:18:00.0415142Z               "path": "crates/spt/src/api/auth.rs",
2026-06-18T11:18:00.0415229Z               "line": 138
2026-06-18T11:18:00.0415319Z             },
2026-06-18T11:18:00.0415395Z             {
2026-06-18T11:18:00.0415495Z               "path": "crates/spt/src/api/auth.rs",
2026-06-18T11:18:00.0415587Z               "line": 146
2026-06-18T11:18:00.0415662Z             },
2026-06-18T11:18:00.0415743Z             {
2026-06-18T11:18:00.0415858Z               "path": "crates/spt/src/api/auth.rs",
2026-06-18T11:18:00.0415958Z               "line": 154
2026-06-18T11:18:00.0416043Z             },
2026-06-18T11:18:00.0416129Z             {
2026-06-18T11:18:00.0416245Z               "path": "crates/spt/src/api/auth.rs",
2026-06-18T11:18:00.0416339Z               "line": 162
2026-06-18T11:18:00.0416420Z             },
2026-06-18T11:18:00.0416512Z             {
2026-06-18T11:18:00.0416621Z               "path": "crates/spt/src/api/auth.rs",
2026-06-18T11:18:00.0416701Z               "line": 170
2026-06-18T11:18:00.0416795Z             }
2026-06-18T11:18:00.0416877Z           ]
2026-06-18T11:18:00.0416971Z         }
2026-06-18T11:18:00.0417051Z       }
2026-06-18T11:18:00.0417137Z     },
2026-06-18T11:18:00.0417223Z     {
2026-06-18T11:18:00.0417328Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-18T11:18:00.0418191Z       "title": "Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)",
2026-06-18T11:18:00.0418296Z       "requiredStages": [
2026-06-18T11:18:00.0418381Z         "impl",
2026-06-18T11:18:00.0418464Z         "unit"
2026-06-18T11:18:00.0418549Z       ],
2026-06-18T11:18:00.0418629Z       "stages": {
2026-06-18T11:18:00.0418720Z         "doc": {
2026-06-18T11:18:00.0418816Z           "complete": false,
2026-06-18T11:18:00.0418896Z           "evidence": []
2026-06-18T11:18:00.0419074Z         },
2026-06-18T11:18:00.0419169Z         "impl": {
2026-06-18T11:18:00.0419254Z           "complete": true,
2026-06-18T11:18:00.0419343Z           "evidence": [
2026-06-18T11:18:00.0419425Z             {
2026-06-18T11:18:00.0419570Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-18T11:18:00.0419660Z               "line": 34
2026-06-18T11:18:00.0419747Z             }
2026-06-18T11:18:00.0419823Z           ]
2026-06-18T11:18:00.0419909Z         },
2026-06-18T11:18:00.0420004Z         "int": {
2026-06-18T11:18:00.0420100Z           "complete": false,
2026-06-18T11:18:00.0420191Z           "evidence": []
2026-06-18T11:18:00.0420270Z         },
2026-06-18T11:18:00.0420362Z         "unit": {
2026-06-18T11:18:00.0420458Z           "complete": true,
2026-06-18T11:18:00.0420543Z           "evidence": [
2026-06-18T11:18:00.0420744Z             {
2026-06-18T11:18:00.0420882Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-18T11:18:00.0420977Z               "line": 188
2026-06-18T11:18:00.0421054Z             },
2026-06-18T11:18:00.0421143Z             {
2026-06-18T11:18:00.0421282Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-18T11:18:00.0421364Z               "line": 200
2026-06-18T11:18:00.0421444Z             },
2026-06-18T11:18:00.0421526Z             {
2026-06-18T11:18:00.0421665Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-18T11:18:00.0421754Z               "line": 211
2026-06-18T11:18:00.0421946Z             },
2026-06-18T11:18:00.0422037Z             {
2026-06-18T11:18:00.0422168Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-18T11:18:00.0422263Z               "line": 253
2026-06-18T11:18:00.0422350Z             },
2026-06-18T11:18:00.0422440Z             {
2026-06-18T11:18:00.0422577Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-18T11:18:00.0422665Z               "line": 277
2026-06-18T11:18:00.0422755Z             },
2026-06-18T11:18:00.0422830Z             {
2026-06-18T11:18:00.0422970Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-18T11:18:00.0423050Z               "line": 300
2026-06-18T11:18:00.0423135Z             },
2026-06-18T11:18:00.0423222Z             {
2026-06-18T11:18:00.0423346Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-18T11:18:00.0423450Z               "line": 316
2026-06-18T11:18:00.0423531Z             }
2026-06-18T11:18:00.0423628Z           ]
2026-06-18T11:18:00.0423703Z         }
2026-06-18T11:18:00.0423793Z       }
2026-06-18T11:18:00.0423881Z     },
2026-06-18T11:18:00.0423962Z     {
2026-06-18T11:18:00.0424075Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-18T11:18:00.0424575Z       "title": "Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)",
2026-06-18T11:18:00.0424678Z       "requiredStages": [
2026-06-18T11:18:00.0424763Z         "impl",
2026-06-18T11:18:00.0424854Z         "unit"
2026-06-18T11:18:00.0424935Z       ],
2026-06-18T11:18:00.0425011Z       "stages": {
2026-06-18T11:18:00.0425101Z         "doc": {
2026-06-18T11:18:00.0425197Z           "complete": false,
2026-06-18T11:18:00.0425293Z           "evidence": []
2026-06-18T11:18:00.0425373Z         },
2026-06-18T11:18:00.0425454Z         "impl": {
2026-06-18T11:18:00.0425551Z           "complete": true,
2026-06-18T11:18:00.0425641Z           "evidence": [
2026-06-18T11:18:00.0425726Z             {
2026-06-18T11:18:00.0425842Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T11:18:00.0425936Z               "line": 29
2026-06-18T11:18:00.0426012Z             },
2026-06-18T11:18:00.0426098Z             {
2026-06-18T11:18:00.0426227Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T11:18:00.0426313Z               "line": 174
2026-06-18T11:18:00.0426398Z             },
2026-06-18T11:18:00.0426481Z             {
2026-06-18T11:18:00.0426589Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T11:18:00.0426680Z               "line": 194
2026-06-18T11:18:00.0426767Z             },
2026-06-18T11:18:00.0426857Z             {
2026-06-18T11:18:00.0426966Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T11:18:00.0427053Z               "line": 222
2026-06-18T11:18:00.0427139Z             }
2026-06-18T11:18:00.0427223Z           ]
2026-06-18T11:18:00.0427304Z         },
2026-06-18T11:18:00.0427385Z         "int": {
2026-06-18T11:18:00.0427480Z           "complete": false,
2026-06-18T11:18:00.0427563Z           "evidence": []
2026-06-18T11:18:00.0427649Z         },
2026-06-18T11:18:00.0427730Z         "unit": {
2026-06-18T11:18:00.0427831Z           "complete": true,
2026-06-18T11:18:00.0428011Z           "evidence": [
2026-06-18T11:18:00.0428103Z             {
2026-06-18T11:18:00.0428226Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T11:18:00.0428316Z               "line": 329
2026-06-18T11:18:00.0428404Z             },
2026-06-18T11:18:00.0428489Z             {
2026-06-18T11:18:00.0428593Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T11:18:00.0428679Z               "line": 344
2026-06-18T11:18:00.0428775Z             },
2026-06-18T11:18:00.0428851Z             {
2026-06-18T11:18:00.0429038Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T11:18:00.0429137Z               "line": 417
2026-06-18T11:18:00.0429319Z             },
2026-06-18T11:18:00.0429428Z             {
2026-06-18T11:18:00.0429552Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T11:18:00.0429644Z               "line": 433
2026-06-18T11:18:00.0429734Z             },
2026-06-18T11:18:00.0429819Z             {
2026-06-18T11:18:00.0429942Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T11:18:00.0430018Z               "line": 492
2026-06-18T11:18:00.0430102Z             },
2026-06-18T11:18:00.0430182Z             {
2026-06-18T11:18:00.0430292Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T11:18:00.0430374Z               "line": 506
2026-06-18T11:18:00.0430455Z             },
2026-06-18T11:18:00.0430535Z             {
2026-06-18T11:18:00.0430646Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T11:18:00.0430741Z               "line": 517
2026-06-18T11:18:00.0430835Z             },
2026-06-18T11:18:00.0430917Z             {
2026-06-18T11:18:00.0431037Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T11:18:00.0431131Z               "line": 528
2026-06-18T11:18:00.0431218Z             }
2026-06-18T11:18:00.0431299Z           ]
2026-06-18T11:18:00.0431375Z         }
2026-06-18T11:18:00.0431465Z       }
2026-06-18T11:18:00.0431542Z     },
2026-06-18T11:18:00.0431628Z     {
2026-06-18T11:18:00.0431757Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-18T11:18:00.0432395Z       "title": "Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)",
2026-06-18T11:18:00.0432496Z       "requiredStages": [
2026-06-18T11:18:00.0432582Z         "impl",
2026-06-18T11:18:00.0432676Z         "unit"
2026-06-18T11:18:00.0432756Z       ],
2026-06-18T11:18:00.0432847Z       "stages": {
2026-06-18T11:18:00.0432929Z         "doc": {
2026-06-18T11:18:00.0433029Z           "complete": false,
2026-06-18T11:18:00.0433114Z           "evidence": []
2026-06-18T11:18:00.0433205Z         },
2026-06-18T11:18:00.0433291Z         "impl": {
2026-06-18T11:18:00.0433376Z           "complete": true,
2026-06-18T11:18:00.0433472Z           "evidence": [
2026-06-18T11:18:00.0433549Z             {
2026-06-18T11:18:00.0433682Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T11:18:00.0433772Z               "line": 27
2026-06-18T11:18:00.0433854Z             },
2026-06-18T11:18:00.0433934Z             {
2026-06-18T11:18:00.0434063Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T11:18:00.0434164Z               "line": 110
2026-06-18T11:18:00.0434240Z             },
2026-06-18T11:18:00.0434325Z             {
2026-06-18T11:18:00.0434446Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T11:18:00.0434536Z               "line": 153
2026-06-18T11:18:00.0434625Z             },
2026-06-18T11:18:00.0434707Z             {
2026-06-18T11:18:00.0434837Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T11:18:00.0434921Z               "line": 182
2026-06-18T11:18:00.0435006Z             },
2026-06-18T11:18:00.0435087Z             {
2026-06-18T11:18:00.0435238Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-18T11:18:00.0435328Z               "line": 31
2026-06-18T11:18:00.0435505Z             },
2026-06-18T11:18:00.0435585Z             {
2026-06-18T11:18:00.0435719Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-18T11:18:00.0435815Z               "line": 113
2026-06-18T11:18:00.0435905Z             },
2026-06-18T11:18:00.0435986Z             {
2026-06-18T11:18:00.0436125Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-18T11:18:00.0436201Z               "line": 138
2026-06-18T11:18:00.0436291Z             }
2026-06-18T11:18:00.0436373Z           ]
2026-06-18T11:18:00.0436458Z         },
2026-06-18T11:18:00.0436549Z         "int": {
2026-06-18T11:18:00.0436634Z           "complete": false,
2026-06-18T11:18:00.0436815Z           "evidence": []
2026-06-18T11:18:00.0436901Z         },
2026-06-18T11:18:00.0436998Z         "unit": {
2026-06-18T11:18:00.0437079Z           "complete": true,
2026-06-18T11:18:00.0437173Z           "evidence": [
2026-06-18T11:18:00.0437264Z             {
2026-06-18T11:18:00.0437389Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T11:18:00.0437483Z               "line": 261
2026-06-18T11:18:00.0437564Z             },
2026-06-18T11:18:00.0437651Z             {
2026-06-18T11:18:00.0437778Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T11:18:00.0437878Z               "line": 276
2026-06-18T11:18:00.0437954Z             },
2026-06-18T11:18:00.0438040Z             {
2026-06-18T11:18:00.0438162Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T11:18:00.0438242Z               "line": 293
2026-06-18T11:18:00.0438324Z             },
2026-06-18T11:18:00.0438406Z             {
2026-06-18T11:18:00.0438533Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T11:18:00.0438620Z               "line": 310
2026-06-18T11:18:00.0438706Z             },
2026-06-18T11:18:00.0438795Z             {
2026-06-18T11:18:00.0438916Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T11:18:00.0439110Z               "line": 327
2026-06-18T11:18:00.0439191Z             },
2026-06-18T11:18:00.0439274Z             {
2026-06-18T11:18:00.0439430Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T11:18:00.0439511Z               "line": 366
2026-06-18T11:18:00.0439603Z             },
2026-06-18T11:18:00.0439683Z             {
2026-06-18T11:18:00.0439826Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-18T11:18:00.0439918Z               "line": 179
2026-06-18T11:18:00.0440002Z             },
2026-06-18T11:18:00.0440093Z             {
2026-06-18T11:18:00.0440238Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-18T11:18:00.0440341Z               "line": 194
2026-06-18T11:18:00.0440421Z             },
2026-06-18T11:18:00.0440507Z             {
2026-06-18T11:18:00.0440653Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-18T11:18:00.0440743Z               "line": 204
2026-06-18T11:18:00.0440824Z             },
2026-06-18T11:18:00.0440905Z             {
2026-06-18T11:18:00.0441039Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-18T11:18:00.0441134Z               "line": 259
2026-06-18T11:18:00.0441220Z             },
2026-06-18T11:18:00.0441316Z             {
2026-06-18T11:18:00.0441448Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-18T11:18:00.0441544Z               "line": 269
2026-06-18T11:18:00.0441625Z             },
2026-06-18T11:18:00.0441711Z             {
2026-06-18T11:18:00.0441836Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-18T11:18:00.0441921Z               "line": 283
2026-06-18T11:18:00.0442006Z             }
2026-06-18T11:18:00.0442092Z           ]
2026-06-18T11:18:00.0442174Z         }
2026-06-18T11:18:00.0442259Z       }
2026-06-18T11:18:00.0442345Z     },
2026-06-18T11:18:00.0442426Z     {
2026-06-18T11:18:00.0442545Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-18T11:18:00.0442717Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-18T11:18:00.0442936Z       "requiredStages": [],
2026-06-18T11:18:00.0443022Z       "stages": {
2026-06-18T11:18:00.0443110Z         "doc": {
2026-06-18T11:18:00.0443194Z           "complete": false,
2026-06-18T11:18:00.0443293Z           "evidence": []
2026-06-18T11:18:00.0443374Z         },
2026-06-18T11:18:00.0443465Z         "impl": {
2026-06-18T11:18:00.0443560Z           "complete": false,
2026-06-18T11:18:00.0443650Z           "evidence": []
2026-06-18T11:18:00.0443732Z         },
2026-06-18T11:18:00.0443828Z         "int": {
2026-06-18T11:18:00.0443922Z           "complete": false,
2026-06-18T11:18:00.0444114Z           "evidence": []
2026-06-18T11:18:00.0444200Z         },
2026-06-18T11:18:00.0444279Z         "unit": {
2026-06-18T11:18:00.0444381Z           "complete": false,
2026-06-18T11:18:00.0444471Z           "evidence": []
2026-06-18T11:18:00.0444561Z         }
2026-06-18T11:18:00.0444647Z       }
2026-06-18T11:18:00.0444739Z     },
2026-06-18T11:18:00.0444823Z     {
2026-06-18T11:18:00.0444947Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-18T11:18:00.0445733Z       "title": "Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)",
2026-06-18T11:18:00.0445840Z       "requiredStages": [
2026-06-18T11:18:00.0445921Z         "impl",
2026-06-18T11:18:00.0446007Z         "unit"
2026-06-18T11:18:00.0446090Z       ],
2026-06-18T11:18:00.0446188Z       "stages": {
2026-06-18T11:18:00.0446289Z         "doc": {
2026-06-18T11:18:00.0446384Z           "complete": false,
2026-06-18T11:18:00.0446470Z           "evidence": []
2026-06-18T11:18:00.0446565Z         },
2026-06-18T11:18:00.0446657Z         "impl": {
2026-06-18T11:18:00.0446752Z           "complete": true,
2026-06-18T11:18:00.0446851Z           "evidence": [
2026-06-18T11:18:00.0446943Z             {
2026-06-18T11:18:00.0447076Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T11:18:00.0447170Z               "line": 26
2026-06-18T11:18:00.0449909Z             },
2026-06-18T11:18:00.0450009Z             {
2026-06-18T11:18:00.0450139Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T11:18:00.0450238Z               "line": 95
2026-06-18T11:18:00.0450328Z             },
2026-06-18T11:18:00.0450410Z             {
2026-06-18T11:18:00.0450539Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T11:18:00.0450629Z               "line": 166
2026-06-18T11:18:00.0450720Z             },
2026-06-18T11:18:00.0450821Z             {
2026-06-18T11:18:00.0450943Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-18T11:18:00.0451028Z               "line": 19
2026-06-18T11:18:00.0451110Z             },
2026-06-18T11:18:00.0451194Z             {
2026-06-18T11:18:00.0451312Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-18T11:18:00.0451412Z               "line": 50
2026-06-18T11:18:00.0451494Z             },
2026-06-18T11:18:00.0451584Z             {
2026-06-18T11:18:00.0451699Z               "path": "crates/spt-live/src/turn.rs",
2026-06-18T11:18:00.0451795Z               "line": 18
2026-06-18T11:18:00.0451880Z             },
2026-06-18T11:18:00.0451966Z             {
2026-06-18T11:18:00.0452077Z               "path": "crates/spt-live/src/turn.rs",
2026-06-18T11:18:00.0452162Z               "line": 71
2026-06-18T11:18:00.0452242Z             },
2026-06-18T11:18:00.0452328Z             {
2026-06-18T11:18:00.0452452Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:18:00.0452543Z               "line": 87
2026-06-18T11:18:00.0452628Z             }
2026-06-18T11:18:00.0452706Z           ]
2026-06-18T11:18:00.0452791Z         },
2026-06-18T11:18:00.0452877Z         "int": {
2026-06-18T11:18:00.0452982Z           "complete": false,
2026-06-18T11:18:00.0453077Z           "evidence": []
2026-06-18T11:18:00.0453302Z         },
2026-06-18T11:18:00.0453383Z         "unit": {
2026-06-18T11:18:00.0453477Z           "complete": true,
2026-06-18T11:18:00.0453568Z           "evidence": [
2026-06-18T11:18:00.0453650Z             {
2026-06-18T11:18:00.0453773Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T11:18:00.0453872Z               "line": 289
2026-06-18T11:18:00.0453948Z             },
2026-06-18T11:18:00.0454030Z             {
2026-06-18T11:18:00.0454149Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T11:18:00.0454249Z               "line": 314
2026-06-18T11:18:00.0454364Z             },
2026-06-18T11:18:00.0454449Z             {
2026-06-18T11:18:00.0454731Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T11:18:00.0454826Z               "line": 350
2026-06-18T11:18:00.0454907Z             },
2026-06-18T11:18:00.0454993Z             {
2026-06-18T11:18:00.0455112Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T11:18:00.0455217Z               "line": 418
2026-06-18T11:18:00.0455294Z             },
2026-06-18T11:18:00.0455379Z             {
2026-06-18T11:18:00.0455502Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T11:18:00.0455585Z               "line": 429
2026-06-18T11:18:00.0455675Z             },
2026-06-18T11:18:00.0455755Z             {
2026-06-18T11:18:00.0455875Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T11:18:00.0455957Z               "line": 460
2026-06-18T11:18:00.0456041Z             },
2026-06-18T11:18:00.0456126Z             {
2026-06-18T11:18:00.0456241Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T11:18:00.0456344Z               "line": 471
2026-06-18T11:18:00.0456429Z             },
2026-06-18T11:18:00.0456515Z             {
2026-06-18T11:18:00.0456620Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-18T11:18:00.0456711Z               "line": 77
2026-06-18T11:18:00.0456801Z             },
2026-06-18T11:18:00.0456892Z             {
2026-06-18T11:18:00.0457011Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-18T11:18:00.0457096Z               "line": 97
2026-06-18T11:18:00.0457179Z             },
2026-06-18T11:18:00.0457264Z             {
2026-06-18T11:18:00.0457387Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-18T11:18:00.0457474Z               "line": 112
2026-06-18T11:18:00.0457555Z             },
2026-06-18T11:18:00.0457650Z             {
2026-06-18T11:18:00.0457755Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-18T11:18:00.0457846Z               "line": 123
2026-06-18T11:18:00.0457927Z             },
2026-06-18T11:18:00.0458012Z             {
2026-06-18T11:18:00.0458133Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-18T11:18:00.0458223Z               "line": 130
2026-06-18T11:18:00.0458303Z             },
2026-06-18T11:18:00.0458384Z             {
2026-06-18T11:18:00.0458490Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-18T11:18:00.0458589Z               "line": 145
2026-06-18T11:18:00.0458665Z             },
2026-06-18T11:18:00.0458748Z             {
2026-06-18T11:18:00.0458862Z               "path": "crates/spt-live/src/turn.rs",
2026-06-18T11:18:00.0459022Z               "line": 115
2026-06-18T11:18:00.0459098Z             },
2026-06-18T11:18:00.0459184Z             {
2026-06-18T11:18:00.0459287Z               "path": "crates/spt-live/src/turn.rs",
2026-06-18T11:18:00.0459382Z               "line": 130
2026-06-18T11:18:00.0459464Z             },
2026-06-18T11:18:00.0459536Z             {
2026-06-18T11:18:00.0459658Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:18:00.0459755Z               "line": 428
2026-06-18T11:18:00.0459850Z             }
2026-06-18T11:18:00.0459930Z           ]
2026-06-18T11:18:00.0460006Z         }
2026-06-18T11:18:00.0460094Z       }
2026-06-18T11:18:00.0460174Z     },
2026-06-18T11:18:00.0460259Z     {
2026-06-18T11:18:00.0460374Z       "id": "REQ-HAZARD-PUMP-IPC-DEADLINE",
2026-06-18T11:18:00.0461324Z       "title": "The single-threaded peer pump's brain-IPC reads are deadline-bounded (PUMP_PEER_IO_TIMEOUT, total-wait per call); a TimedOut read POISONS the client and escalates to a SUPERVISED RESTART, never a per-peer retry — a black-holed peer must never wedge the whole pump",
2026-06-18T11:18:00.0461428Z       "requiredStages": [
2026-06-18T11:18:00.0461517Z         "doc",
2026-06-18T11:18:00.0461598Z         "impl",
2026-06-18T11:18:00.0461684Z         "unit"
2026-06-18T11:18:00.0461764Z       ],
2026-06-18T11:18:00.0461858Z       "stages": {
2026-06-18T11:18:00.0461939Z         "doc": {
2026-06-18T11:18:00.0462040Z           "complete": true,
2026-06-18T11:18:00.0462229Z           "evidence": [
2026-06-18T11:18:00.0462312Z             {
2026-06-18T11:18:00.0462422Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T11:18:00.0462511Z               "line": 374
2026-06-18T11:18:00.0462602Z             }
2026-06-18T11:18:00.0462683Z           ]
2026-06-18T11:18:00.0462769Z         },
2026-06-18T11:18:00.0462859Z         "impl": {
2026-06-18T11:18:00.0462951Z           "complete": true,
2026-06-18T11:18:00.0463031Z           "evidence": [
2026-06-18T11:18:00.0463117Z             {
2026-06-18T11:18:00.0463237Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T11:18:00.0463323Z               "line": 200
2026-06-18T11:18:00.0463408Z             },
2026-06-18T11:18:00.0463494Z             {
2026-06-18T11:18:00.0463610Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T11:18:00.0463694Z               "line": 304
2026-06-18T11:18:00.0463784Z             },
2026-06-18T11:18:00.0463857Z             {
2026-06-18T11:18:00.0463980Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T11:18:00.0464075Z               "line": 516
2026-06-18T11:18:00.0464157Z             },
2026-06-18T11:18:00.0464239Z             {
2026-06-18T11:18:00.0464342Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T11:18:00.0464437Z               "line": 531
2026-06-18T11:18:00.0464527Z             },
2026-06-18T11:18:00.0464614Z             {
2026-06-18T11:18:00.0464728Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T11:18:00.0464809Z               "line": 1158
2026-06-18T11:18:00.0464890Z             },
2026-06-18T11:18:00.0464971Z             {
2026-06-18T11:18:00.0465090Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:18:00.0465182Z               "line": 443
2026-06-18T11:18:00.0465257Z             },
2026-06-18T11:18:00.0465343Z             {
2026-06-18T11:18:00.0465453Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:18:00.0465548Z               "line": 590
2026-06-18T11:18:00.0465634Z             },
2026-06-18T11:18:00.0465719Z             {
2026-06-18T11:18:00.0465840Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:18:00.0465920Z               "line": 731
2026-06-18T11:18:00.0466001Z             }
2026-06-18T11:18:00.0466087Z           ]
2026-06-18T11:18:00.0466173Z         },
2026-06-18T11:18:00.0466258Z         "int": {
2026-06-18T11:18:00.0466363Z           "complete": false,
2026-06-18T11:18:00.0466460Z           "evidence": []
2026-06-18T11:18:00.0466540Z         },
2026-06-18T11:18:00.0466634Z         "unit": {
2026-06-18T11:18:00.0466724Z           "complete": true,
2026-06-18T11:18:00.0466815Z           "evidence": [
2026-06-18T11:18:00.0466895Z             {
2026-06-18T11:18:00.0467013Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:18:00.0467104Z               "line": 1155
2026-06-18T11:18:00.0467185Z             },
2026-06-18T11:18:00.0467276Z             {
2026-06-18T11:18:00.0467414Z               "path": "crates/spt-daemon/tests/pumpdeadline.rs",
2026-06-18T11:18:00.0467500Z               "line": 30
2026-06-18T11:18:00.0467586Z             }
2026-06-18T11:18:00.0467671Z           ]
2026-06-18T11:18:00.0467758Z         }
2026-06-18T11:18:00.0467839Z       }
2026-06-18T11:18:00.0467919Z     },
2026-06-18T11:18:00.0468068Z     {
2026-06-18T11:18:00.0468191Z       "id": "REQ-HAZARD-RC-ATTACH-FAILFAST",
2026-06-18T11:18:00.0471569Z       "title": "B1: `spt rc <id>` to a DEAD or non-streaming session fails fast with a clear message, never an INFINITE blank screen. Today rc.rs run_attach (209-231) + pump spawns PUMP_IPC_READER and blocks: the poll times out each slice but the stream never produces output, so the operator sees a permanent blank (operator: fresh wall-f attached, closed tab, then `spt rc wall-f` HUNG — the broker still resolved a session for it). FIX: (a) once B2 lands, gate attach on is_online/status — an offline endpoint yields a clean 'endpoint offline, start it' not an attach; (b) fail-fast — if the attach-open ack / first output does not arrive within a bound, surface a clear message, never an infinite blank; (c) the broker EOFs the attach stream when the session's child is dead, so rc's existing PumpEnd::BrokerGone graceful path (REQ-HAZARD-RC-EOF) catches it. PIN the exact sub-mechanism with a repro test FIRST (dead-session-lingers-in-broker vs reaped-but-rc-waits vs alive-resting-no-wake — the wall-f Windows tab-close: child alive-silent vs dead-not-reaped). (v0.12.0)",
2026-06-18T11:18:00.0471811Z       "requiredStages": [
2026-06-18T11:18:00.0471898Z         "impl",
2026-06-18T11:18:00.0471989Z         "unit",
2026-06-18T11:18:00.0472063Z         "int"
2026-06-18T11:18:00.0472148Z       ],
2026-06-18T11:18:00.0472239Z       "stages": {
2026-06-18T11:18:00.0472320Z         "doc": {
2026-06-18T11:18:00.0472418Z           "complete": false,
2026-06-18T11:18:00.0472504Z           "evidence": []
2026-06-18T11:18:00.0472591Z         },
2026-06-18T11:18:00.0472672Z         "impl": {
2026-06-18T11:18:00.0472766Z           "complete": true,
2026-06-18T11:18:00.0472852Z           "evidence": [
2026-06-18T11:18:00.0472929Z             {
2026-06-18T11:18:00.0473042Z               "path": "crates/spt/src/rc.rs",
2026-06-18T11:18:00.0473138Z               "line": 198
2026-06-18T11:18:00.0473230Z             },
2026-06-18T11:18:00.0473334Z             {
2026-06-18T11:18:00.0473478Z               "path": "crates/spt/src/rc.rs",
2026-06-18T11:18:00.0473587Z               "line": 362
2026-06-18T11:18:00.0473668Z             }
2026-06-18T11:18:00.0473763Z           ]
2026-06-18T11:18:00.0473836Z         },
2026-06-18T11:18:00.0473920Z         "int": {
2026-06-18T11:18:00.0474015Z           "complete": true,
2026-06-18T11:18:00.0474092Z           "evidence": [
2026-06-18T11:18:00.0474174Z             {
2026-06-18T11:18:00.0474297Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-18T11:18:00.0474388Z               "line": 400
2026-06-18T11:18:00.0474470Z             }
2026-06-18T11:18:00.0474564Z           ]
2026-06-18T11:18:00.0474640Z         },
2026-06-18T11:18:00.0474727Z         "unit": {
2026-06-18T11:18:00.0474823Z           "complete": true,
2026-06-18T11:18:00.0474902Z           "evidence": [
2026-06-18T11:18:00.0474988Z             {
2026-06-18T11:18:00.0475092Z               "path": "crates/spt/src/rc.rs",
2026-06-18T11:18:00.0475194Z               "line": 538
2026-06-18T11:18:00.0475278Z             },
2026-06-18T11:18:00.0475359Z             {
2026-06-18T11:18:00.0475465Z               "path": "crates/spt/src/rc.rs",
2026-06-18T11:18:00.0475546Z               "line": 557
2026-06-18T11:18:00.0475631Z             }
2026-06-18T11:18:00.0475713Z           ]
2026-06-18T11:18:00.0475794Z         }
2026-06-18T11:18:00.0475875Z       }
2026-06-18T11:18:00.0475960Z     },
2026-06-18T11:18:00.0476041Z     {
2026-06-18T11:18:00.0476137Z       "id": "REQ-HAZARD-RC-EOF",
2026-06-18T11:18:00.0479991Z       "title": "A severed broker stream during a live rc session surfaces GRACEFULLY, never as a raw io error that crashes the PTY. The rc read-loop (rc.rs:352-362) continues only on WouldBlock/TimedOut; ANY other read_event_until error — including UnexpectedEof 'failed to fill whole buffer' — returns Err → RC_FAIL → the PTY 'crashes' from the user's view. Confirmed trigger: a deliberate `spt daemon stop` (broker bounce) severs an active rc (perri stopped the daemon to release owlery watch handles). Same severed-broker-stream EOF class as the v0.9.1 seed fix (seed_fail_message) and the listener-death case — spt-core must classify a broker-gone EOF and (a) surface a CLEAR actionable message ('daemon stopped/restarted — re-run / reconnect'), never the raw buffer error, and ideally (b) AUTO-REATTACH to the same session on the fresh broker (the broker is the daemon-lifetime anchor; it returns on the next `spt api` call). FOLD two side-observations: (1) `spt daemon stop` SILENTLY drops active rc/live sessions — warn ('N active session(s) will drop') or graceful-detach on stop; (2) the daemon holds owlery WATCH HANDLES on perch dirs so a torn-down perch dir stays 'Device busy' until a full daemon stop releases them (perri's rt-* cleanup) — a torn-down perch's handle should release without a daemon stop. doyle Finding C, root-caused. (post-v0.10.0)",
2026-06-18T11:18:00.0480308Z       "requiredStages": [
2026-06-18T11:18:00.0480402Z         "impl",
2026-06-18T11:18:00.0480483Z         "unit"
2026-06-18T11:18:00.0480574Z       ],
2026-06-18T11:18:00.0480661Z       "stages": {
2026-06-18T11:18:00.0480740Z         "doc": {
2026-06-18T11:18:00.0480826Z           "complete": false,
2026-06-18T11:18:00.0480918Z           "evidence": []
2026-06-18T11:18:00.0480999Z         },
2026-06-18T11:18:00.0481083Z         "impl": {
2026-06-18T11:18:00.0481180Z           "complete": true,
2026-06-18T11:18:00.0481271Z           "evidence": [
2026-06-18T11:18:00.0481361Z             {
2026-06-18T11:18:00.0481461Z               "path": "crates/spt/src/rc.rs",
2026-06-18T11:18:00.0481557Z               "line": 385
2026-06-18T11:18:00.0481652Z             }
2026-06-18T11:18:00.0481732Z           ]
2026-06-18T11:18:00.0481820Z         },
2026-06-18T11:18:00.0481896Z         "int": {
2026-06-18T11:18:00.0481995Z           "complete": false,
2026-06-18T11:18:00.0482081Z           "evidence": []
2026-06-18T11:18:00.0482163Z         },
2026-06-18T11:18:00.0482253Z         "unit": {
2026-06-18T11:18:00.0482338Z           "complete": true,
2026-06-18T11:18:00.0482425Z           "evidence": [
2026-06-18T11:18:00.0482511Z             {
2026-06-18T11:18:00.0482619Z               "path": "crates/spt/src/rc.rs",
2026-06-18T11:18:00.0482699Z               "line": 573
2026-06-18T11:18:00.0482781Z             }
2026-06-18T11:18:00.0482861Z           ]
2026-06-18T11:18:00.0482940Z         }
2026-06-18T11:18:00.0483026Z       }
2026-06-18T11:18:00.0483107Z     },
2026-06-18T11:18:00.0483184Z     {
2026-06-18T11:18:00.0483293Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-18T11:18:00.0483542Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-18T11:18:00.0483650Z       "requiredStages": [
2026-06-18T11:18:00.0483732Z         "impl",
2026-06-18T11:18:00.0483823Z         "unit"
2026-06-18T11:18:00.0483904Z       ],
2026-06-18T11:18:00.0483999Z       "stages": {
2026-06-18T11:18:00.0484081Z         "doc": {
2026-06-18T11:18:00.0484185Z           "complete": true,
2026-06-18T11:18:00.0484275Z           "evidence": [
2026-06-18T11:18:00.0484352Z             {
2026-06-18T11:18:00.0484462Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T11:18:00.0484548Z               "line": 139
2026-06-18T11:18:00.0484624Z             }
2026-06-18T11:18:00.0484706Z           ]
2026-06-18T11:18:00.0484782Z         },
2026-06-18T11:18:00.0484881Z         "impl": {
2026-06-18T11:18:00.0484967Z           "complete": true,
2026-06-18T11:18:00.0485049Z           "evidence": [
2026-06-18T11:18:00.0485134Z             {
2026-06-18T11:18:00.0485258Z               "path": "crates/spt-store/src/db.rs",
2026-06-18T11:18:00.0485350Z               "line": 29
2026-06-18T11:18:00.0485435Z             },
2026-06-18T11:18:00.0485514Z             {
2026-06-18T11:18:00.0485624Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T11:18:00.0485710Z               "line": 101
2026-06-18T11:18:00.0485791Z             },
2026-06-18T11:18:00.0485958Z             {
2026-06-18T11:18:00.0486082Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T11:18:00.0486172Z               "line": 30
2026-06-18T11:18:00.0486263Z             },
2026-06-18T11:18:00.0486345Z             {
2026-06-18T11:18:00.0486463Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T11:18:00.0486544Z               "line": 48
2026-06-18T11:18:00.0486636Z             }
2026-06-18T11:18:00.0486721Z           ]
2026-06-18T11:18:00.0486797Z         },
2026-06-18T11:18:00.0486877Z         "int": {
2026-06-18T11:18:00.0486970Z           "complete": false,
2026-06-18T11:18:00.0487064Z           "evidence": []
2026-06-18T11:18:00.0487217Z         },
2026-06-18T11:18:00.0487299Z         "unit": {
2026-06-18T11:18:00.0487392Z           "complete": true,
2026-06-18T11:18:00.0487483Z           "evidence": [
2026-06-18T11:18:00.0487561Z             {
2026-06-18T11:18:00.0487683Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T11:18:00.0487774Z               "line": 162
2026-06-18T11:18:00.0487844Z             }
2026-06-18T11:18:00.0487926Z           ]
2026-06-18T11:18:00.0488010Z         }
2026-06-18T11:18:00.0488100Z       }
2026-06-18T11:18:00.0488186Z     },
2026-06-18T11:18:00.0488262Z     {
2026-06-18T11:18:00.0488367Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-18T11:18:00.0488748Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-18T11:18:00.0488849Z       "requiredStages": [
2026-06-18T11:18:00.0488930Z         "doc",
2026-06-18T11:18:00.0489115Z         "impl",
2026-06-18T11:18:00.0489198Z         "unit"
2026-06-18T11:18:00.0489297Z       ],
2026-06-18T11:18:00.0489397Z       "stages": {
2026-06-18T11:18:00.0489478Z         "doc": {
2026-06-18T11:18:00.0489574Z           "complete": true,
2026-06-18T11:18:00.0489664Z           "evidence": [
2026-06-18T11:18:00.0489754Z             {
2026-06-18T11:18:00.0489870Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T11:18:00.0489964Z               "line": 151
2026-06-18T11:18:00.0490050Z             }
2026-06-18T11:18:00.0490133Z           ]
2026-06-18T11:18:00.0490213Z         },
2026-06-18T11:18:00.0490298Z         "impl": {
2026-06-18T11:18:00.0490394Z           "complete": true,
2026-06-18T11:18:00.0490486Z           "evidence": [
2026-06-18T11:18:00.0490565Z             {
2026-06-18T11:18:00.0490688Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T11:18:00.0490774Z               "line": 22
2026-06-18T11:18:00.0490854Z             }
2026-06-18T11:18:00.0490939Z           ]
2026-06-18T11:18:00.0491024Z         },
2026-06-18T11:18:00.0491125Z         "int": {
2026-06-18T11:18:00.0491216Z           "complete": false,
2026-06-18T11:18:00.0491310Z           "evidence": []
2026-06-18T11:18:00.0491386Z         },
2026-06-18T11:18:00.0491473Z         "unit": {
2026-06-18T11:18:00.0491554Z           "complete": true,
2026-06-18T11:18:00.0491653Z           "evidence": [
2026-06-18T11:18:00.0491736Z             {
2026-06-18T11:18:00.0491845Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T11:18:00.0491935Z               "line": 298
2026-06-18T11:18:00.0492021Z             }
2026-06-18T11:18:00.0492103Z           ]
2026-06-18T11:18:00.0492183Z         }
2026-06-18T11:18:00.0492273Z       }
2026-06-18T11:18:00.0492355Z     },
2026-06-18T11:18:00.0492436Z     {
2026-06-18T11:18:00.0492560Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-18T11:18:00.0492995Z       "title": "Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)",
2026-06-18T11:18:00.0493100Z       "requiredStages": [
2026-06-18T11:18:00.0493184Z         "impl",
2026-06-18T11:18:00.0493259Z         "unit"
2026-06-18T11:18:00.0493341Z       ],
2026-06-18T11:18:00.0493431Z       "stages": {
2026-06-18T11:18:00.0493519Z         "doc": {
2026-06-18T11:18:00.0493614Z           "complete": true,
2026-06-18T11:18:00.0493816Z           "evidence": [
2026-06-18T11:18:00.0493891Z             {
2026-06-18T11:18:00.0494002Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T11:18:00.0494097Z               "line": 145
2026-06-18T11:18:00.0494172Z             }
2026-06-18T11:18:00.0494253Z           ]
2026-06-18T11:18:00.0494336Z         },
2026-06-18T11:18:00.0494416Z         "impl": {
2026-06-18T11:18:00.0494501Z           "complete": true,
2026-06-18T11:18:00.0494588Z           "evidence": [
2026-06-18T11:18:00.0494679Z             {
2026-06-18T11:18:00.0494807Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-18T11:18:00.0494893Z               "line": 160
2026-06-18T11:18:00.0495079Z             },
2026-06-18T11:18:00.0495164Z             {
2026-06-18T11:18:00.0495290Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.0495384Z               "line": 200
2026-06-18T11:18:00.0495469Z             },
2026-06-18T11:18:00.0495552Z             {
2026-06-18T11:18:00.0495685Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0495775Z               "line": 298
2026-06-18T11:18:00.0495872Z             },
2026-06-18T11:18:00.0495962Z             {
2026-06-18T11:18:00.0496074Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-18T11:18:00.0496174Z               "line": 20
2026-06-18T11:18:00.0496261Z             }
2026-06-18T11:18:00.0496352Z           ]
2026-06-18T11:18:00.0496427Z         },
2026-06-18T11:18:00.0496508Z         "int": {
2026-06-18T11:18:00.0496599Z           "complete": false,
2026-06-18T11:18:00.0496680Z           "evidence": []
2026-06-18T11:18:00.0496765Z         },
2026-06-18T11:18:00.0496857Z         "unit": {
2026-06-18T11:18:00.0496957Z           "complete": true,
2026-06-18T11:18:00.0497037Z           "evidence": [
2026-06-18T11:18:00.0497118Z             {
2026-06-18T11:18:00.0497253Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.0497329Z               "line": 937
2026-06-18T11:18:00.0497424Z             },
2026-06-18T11:18:00.0497510Z             {
2026-06-18T11:18:00.0497638Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-18T11:18:00.0497729Z               "line": 88
2026-06-18T11:18:00.0497811Z             },
2026-06-18T11:18:00.0497896Z             {
2026-06-18T11:18:00.0498010Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0498096Z               "line": 851
2026-06-18T11:18:00.0498179Z             },
2026-06-18T11:18:00.0498267Z             {
2026-06-18T11:18:00.0498386Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0498486Z               "line": 870
2026-06-18T11:18:00.0498575Z             },
2026-06-18T11:18:00.0498656Z             {
2026-06-18T11:18:00.0498789Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-18T11:18:00.0498876Z               "line": 279
2026-06-18T11:18:00.0499041Z             },
2026-06-18T11:18:00.0499113Z             {
2026-06-18T11:18:00.0499237Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-18T11:18:00.0499328Z               "line": 82
2026-06-18T11:18:00.0499424Z             },
2026-06-18T11:18:00.0499509Z             {
2026-06-18T11:18:00.0499613Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-18T11:18:00.0499710Z               "line": 99
2026-06-18T11:18:00.0499791Z             },
2026-06-18T11:18:00.0499872Z             {
2026-06-18T11:18:00.0499995Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-18T11:18:00.0500082Z               "line": 119
2026-06-18T11:18:00.0500162Z             }
2026-06-18T11:18:00.0500243Z           ]
2026-06-18T11:18:00.0500329Z         }
2026-06-18T11:18:00.0500411Z       }
2026-06-18T11:18:00.0500496Z     },
2026-06-18T11:18:00.0500586Z     {
2026-06-18T11:18:00.0500702Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-18T11:18:00.0501966Z       "title": "A dead node identity's registry rows must decay: only the per-(endpoint,node) epoch lease supersedes rows, so without eviction a vanished node's rows are immortal and poison bare-id resolution with phantom AcrossNodes ambiguity — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window; own rows never decay; a revived node re-inserts from its durable epoch within one pump cadence (4.10)",
2026-06-18T11:18:00.0502166Z       "requiredStages": [
2026-06-18T11:18:00.0502252Z         "doc",
2026-06-18T11:18:00.0502343Z         "impl",
2026-06-18T11:18:00.0502424Z         "unit"
2026-06-18T11:18:00.0502509Z       ],
2026-06-18T11:18:00.0502595Z       "stages": {
2026-06-18T11:18:00.0502677Z         "doc": {
2026-06-18T11:18:00.0502762Z           "complete": true,
2026-06-18T11:18:00.0502973Z           "evidence": [
2026-06-18T11:18:00.0503063Z             {
2026-06-18T11:18:00.0503172Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T11:18:00.0503264Z               "line": 157
2026-06-18T11:18:00.0503345Z             }
2026-06-18T11:18:00.0503434Z           ]
2026-06-18T11:18:00.0503535Z         },
2026-06-18T11:18:00.0503617Z         "impl": {
2026-06-18T11:18:00.0503716Z           "complete": true,
2026-06-18T11:18:00.0503801Z           "evidence": [
2026-06-18T11:18:00.0503891Z             {
2026-06-18T11:18:00.0504019Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-18T11:18:00.0504112Z               "line": 137
2026-06-18T11:18:00.0504199Z             },
2026-06-18T11:18:00.0504286Z             {
2026-06-18T11:18:00.0504409Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.0504499Z               "line": 564
2026-06-18T11:18:00.0504586Z             },
2026-06-18T11:18:00.0504677Z             {
2026-06-18T11:18:00.0504800Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.0504896Z               "line": 571
2026-06-18T11:18:00.0504971Z             },
2026-06-18T11:18:00.0505057Z             {
2026-06-18T11:18:00.0505163Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0505268Z               "line": 227
2026-06-18T11:18:00.0505349Z             }
2026-06-18T11:18:00.0505429Z           ]
2026-06-18T11:18:00.0505511Z         },
2026-06-18T11:18:00.0505601Z         "int": {
2026-06-18T11:18:00.0505696Z           "complete": false,
2026-06-18T11:18:00.0505787Z           "evidence": []
2026-06-18T11:18:00.0505883Z         },
2026-06-18T11:18:00.0505963Z         "unit": {
2026-06-18T11:18:00.0506058Z           "complete": true,
2026-06-18T11:18:00.0506150Z           "evidence": [
2026-06-18T11:18:00.0506235Z             {
2026-06-18T11:18:00.0506363Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.0506460Z               "line": 1622
2026-06-18T11:18:00.0506555Z             },
2026-06-18T11:18:00.0506639Z             {
2026-06-18T11:18:00.0506763Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.0506859Z               "line": 1680
2026-06-18T11:18:00.0506931Z             },
2026-06-18T11:18:00.0507020Z             {
2026-06-18T11:18:00.0507136Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0507227Z               "line": 883
2026-06-18T11:18:00.0507311Z             }
2026-06-18T11:18:00.0507403Z           ]
2026-06-18T11:18:00.0507484Z         }
2026-06-18T11:18:00.0507565Z       }
2026-06-18T11:18:00.0507659Z     },
2026-06-18T11:18:00.0507736Z     {
2026-06-18T11:18:00.0507864Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-18T11:18:00.0508042Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-18T11:18:00.0508146Z       "requiredStages": [
2026-06-18T11:18:00.0508246Z         "impl",
2026-06-18T11:18:00.0508332Z         "unit"
2026-06-18T11:18:00.0508414Z       ],
2026-06-18T11:18:00.0508498Z       "stages": {
2026-06-18T11:18:00.0508584Z         "doc": {
2026-06-18T11:18:00.0508681Z           "complete": false,
2026-06-18T11:18:00.0508776Z           "evidence": []
2026-06-18T11:18:00.0508856Z         },
2026-06-18T11:18:00.0509089Z         "impl": {
2026-06-18T11:18:00.0509187Z           "complete": true,
2026-06-18T11:18:00.0509267Z           "evidence": [
2026-06-18T11:18:00.0509344Z             {
2026-06-18T11:18:00.0509478Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T11:18:00.0509573Z               "line": 15
2026-06-18T11:18:00.0509659Z             },
2026-06-18T11:18:00.0509731Z             {
2026-06-18T11:18:00.0509854Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T11:18:00.0509935Z               "line": 55
2026-06-18T11:18:00.0510022Z             },
2026-06-18T11:18:00.0510108Z             {
2026-06-18T11:18:00.0510231Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T11:18:00.0510422Z               "line": 66
2026-06-18T11:18:00.0510502Z             },
2026-06-18T11:18:00.0510584Z             {
2026-06-18T11:18:00.0510703Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T11:18:00.0510798Z               "line": 115
2026-06-18T11:18:00.0510884Z             },
2026-06-18T11:18:00.0510967Z             {
2026-06-18T11:18:00.0511084Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T11:18:00.0511170Z               "line": 138
2026-06-18T11:18:00.0511257Z             }
2026-06-18T11:18:00.0511333Z           ]
2026-06-18T11:18:00.0511428Z         },
2026-06-18T11:18:00.0511514Z         "int": {
2026-06-18T11:18:00.0511611Z           "complete": false,
2026-06-18T11:18:00.0511704Z           "evidence": []
2026-06-18T11:18:00.0511780Z         },
2026-06-18T11:18:00.0511861Z         "unit": {
2026-06-18T11:18:00.0511956Z           "complete": true,
2026-06-18T11:18:00.0512049Z           "evidence": [
2026-06-18T11:18:00.0512139Z             {
2026-06-18T11:18:00.0512259Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T11:18:00.0512350Z               "line": 363
2026-06-18T11:18:00.0512445Z             },
2026-06-18T11:18:00.0512526Z             {
2026-06-18T11:18:00.0512622Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T11:18:00.0512716Z               "line": 369
2026-06-18T11:18:00.0512797Z             },
2026-06-18T11:18:00.0512889Z             {
2026-06-18T11:18:00.0512999Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T11:18:00.0513088Z               "line": 383
2026-06-18T11:18:00.0513165Z             },
2026-06-18T11:18:00.0513247Z             {
2026-06-18T11:18:00.0513365Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T11:18:00.0513441Z               "line": 392
2026-06-18T11:18:00.0513529Z             },
2026-06-18T11:18:00.0513613Z             {
2026-06-18T11:18:00.0513728Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T11:18:00.0513824Z               "line": 195
2026-06-18T11:18:00.0513900Z             },
2026-06-18T11:18:00.0513985Z             {
2026-06-18T11:18:00.0514091Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T11:18:00.0514186Z               "line": 208
2026-06-18T11:18:00.0514266Z             },
2026-06-18T11:18:00.0514356Z             {
2026-06-18T11:18:00.0514480Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T11:18:00.0514560Z               "line": 271
2026-06-18T11:18:00.0514654Z             },
2026-06-18T11:18:00.0514730Z             {
2026-06-18T11:18:00.0514851Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T11:18:00.0514936Z               "line": 290
2026-06-18T11:18:00.0515025Z             },
2026-06-18T11:18:00.0515108Z             {
2026-06-18T11:18:00.0515212Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T11:18:00.0515307Z               "line": 319
2026-06-18T11:18:00.0515384Z             }
2026-06-18T11:18:00.0515465Z           ]
2026-06-18T11:18:00.0515556Z         }
2026-06-18T11:18:00.0515631Z       }
2026-06-18T11:18:00.0515713Z     },
2026-06-18T11:18:00.0515790Z     {
2026-06-18T11:18:00.0515904Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-18T11:18:00.0516171Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-18T11:18:00.0516372Z       "requiredStages": [
2026-06-18T11:18:00.0516462Z         "impl",
2026-06-18T11:18:00.0516542Z         "unit",
2026-06-18T11:18:00.0516633Z         "int"
2026-06-18T11:18:00.0516715Z       ],
2026-06-18T11:18:00.0516809Z       "stages": {
2026-06-18T11:18:00.0516900Z         "doc": {
2026-06-18T11:18:00.0516997Z           "complete": false,
2026-06-18T11:18:00.0517092Z           "evidence": []
2026-06-18T11:18:00.0517176Z         },
2026-06-18T11:18:00.0517251Z         "impl": {
2026-06-18T11:18:00.0517343Z           "complete": true,
2026-06-18T11:18:00.0517434Z           "evidence": [
2026-06-18T11:18:00.0517595Z             {
2026-06-18T11:18:00.0517720Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T11:18:00.0517810Z               "line": 448
2026-06-18T11:18:00.0517895Z             },
2026-06-18T11:18:00.0517982Z             {
2026-06-18T11:18:00.0518086Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T11:18:00.0518186Z               "line": 868
2026-06-18T11:18:00.0518272Z             },
2026-06-18T11:18:00.0518349Z             {
2026-06-18T11:18:00.0518464Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T11:18:00.0518544Z               "line": 913
2026-06-18T11:18:00.0518630Z             },
2026-06-18T11:18:00.0518707Z             {
2026-06-18T11:18:00.0518816Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T11:18:00.0518912Z               "line": 938
2026-06-18T11:18:00.0519063Z             },
2026-06-18T11:18:00.0519154Z             {
2026-06-18T11:18:00.0519270Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.0519383Z               "line": 1006
2026-06-18T11:18:00.0519473Z             },
2026-06-18T11:18:00.0519554Z             {
2026-06-18T11:18:00.0519682Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.0519766Z               "line": 1188
2026-06-18T11:18:00.0519866Z             },
2026-06-18T11:18:00.0519948Z             {
2026-06-18T11:18:00.0520062Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.0520147Z               "line": 1319
2026-06-18T11:18:00.0520238Z             },
2026-06-18T11:18:00.0520319Z             {
2026-06-18T11:18:00.0520428Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.0520520Z               "line": 1367
2026-06-18T11:18:00.0520597Z             },
2026-06-18T11:18:00.0520682Z             {
2026-06-18T11:18:00.0520791Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-18T11:18:00.0520878Z               "line": 46
2026-06-18T11:18:00.0520977Z             },
2026-06-18T11:18:00.0521058Z             {
2026-06-18T11:18:00.0521169Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-18T11:18:00.0521254Z               "line": 167
2026-06-18T11:18:00.0521335Z             },
2026-06-18T11:18:00.0521421Z             {
2026-06-18T11:18:00.0521532Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-18T11:18:00.0521625Z               "line": 132
2026-06-18T11:18:00.0521716Z             },
2026-06-18T11:18:00.0524293Z             {
2026-06-18T11:18:00.0524436Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T11:18:00.0524535Z               "line": 137
2026-06-18T11:18:00.0524622Z             },
2026-06-18T11:18:00.0524704Z             {
2026-06-18T11:18:00.0524826Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T11:18:00.0524916Z               "line": 183
2026-06-18T11:18:00.0524997Z             }
2026-06-18T11:18:00.0525073Z           ]
2026-06-18T11:18:00.0525157Z         },
2026-06-18T11:18:00.0525261Z         "int": {
2026-06-18T11:18:00.0525353Z           "complete": true,
2026-06-18T11:18:00.0525439Z           "evidence": [
2026-06-18T11:18:00.0525515Z             {
2026-06-18T11:18:00.0525658Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-18T11:18:00.0525744Z               "line": 27
2026-06-18T11:18:00.0525973Z             },
2026-06-18T11:18:00.0526059Z             {
2026-06-18T11:18:00.0526196Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-18T11:18:00.0526288Z               "line": 148
2026-06-18T11:18:00.0526364Z             },
2026-06-18T11:18:00.0526449Z             {
2026-06-18T11:18:00.0526573Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-18T11:18:00.0526669Z               "line": 200
2026-06-18T11:18:00.0526759Z             }
2026-06-18T11:18:00.0526845Z           ]
2026-06-18T11:18:00.0526927Z         },
2026-06-18T11:18:00.0527017Z         "unit": {
2026-06-18T11:18:00.0527117Z           "complete": true,
2026-06-18T11:18:00.0527304Z           "evidence": [
2026-06-18T11:18:00.0527383Z             {
2026-06-18T11:18:00.0527513Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-18T11:18:00.0527595Z               "line": 313
2026-06-18T11:18:00.0527680Z             },
2026-06-18T11:18:00.0527760Z             {
2026-06-18T11:18:00.0527883Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-18T11:18:00.0527970Z               "line": 345
2026-06-18T11:18:00.0528055Z             },
2026-06-18T11:18:00.0528136Z             {
2026-06-18T11:18:00.0528241Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-18T11:18:00.0528327Z               "line": 366
2026-06-18T11:18:00.0528408Z             },
2026-06-18T11:18:00.0528489Z             {
2026-06-18T11:18:00.0528609Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T11:18:00.0528704Z               "line": 510
2026-06-18T11:18:00.0528799Z             },
2026-06-18T11:18:00.0528881Z             {
2026-06-18T11:18:00.0529084Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-18T11:18:00.0529172Z               "line": 289
2026-06-18T11:18:00.0529253Z             },
2026-06-18T11:18:00.0529323Z             {
2026-06-18T11:18:00.0529448Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-18T11:18:00.0529544Z               "line": 230
2026-06-18T11:18:00.0529628Z             },
2026-06-18T11:18:00.0529710Z             {
2026-06-18T11:18:00.0529821Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T11:18:00.0529916Z               "line": 526
2026-06-18T11:18:00.0529999Z             },
2026-06-18T11:18:00.0530085Z             {
2026-06-18T11:18:00.0530209Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T11:18:00.0530293Z               "line": 556
2026-06-18T11:18:00.0530378Z             }
2026-06-18T11:18:00.0530460Z           ]
2026-06-18T11:18:00.0530536Z         }
2026-06-18T11:18:00.0530617Z       }
2026-06-18T11:18:00.0530703Z     },
2026-06-18T11:18:00.0530793Z     {
2026-06-18T11:18:00.0530913Z       "id": "REQ-HAZARD-ROLLBACK-STATE-COMPAT",
2026-06-18T11:18:00.0532581Z       "title": "A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.",
2026-06-18T11:18:00.0532692Z       "requiredStages": [
2026-06-18T11:18:00.0532783Z         "doc",
2026-06-18T11:18:00.0532871Z         "impl",
2026-06-18T11:18:00.0532956Z         "unit"
2026-06-18T11:18:00.0533043Z       ],
2026-06-18T11:18:00.0533123Z       "stages": {
2026-06-18T11:18:00.0533203Z         "doc": {
2026-06-18T11:18:00.0533313Z           "complete": true,
2026-06-18T11:18:00.0533404Z           "evidence": [
2026-06-18T11:18:00.0533489Z             {
2026-06-18T11:18:00.0533593Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T11:18:00.0533686Z               "line": 314
2026-06-18T11:18:00.0533771Z             }
2026-06-18T11:18:00.0533860Z           ]
2026-06-18T11:18:00.0534076Z         },
2026-06-18T11:18:00.0534156Z         "impl": {
2026-06-18T11:18:00.0534257Z           "complete": true,
2026-06-18T11:18:00.0534344Z           "evidence": [
2026-06-18T11:18:00.0534433Z             {
2026-06-18T11:18:00.0534576Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-18T11:18:00.0534663Z               "line": 33
2026-06-18T11:18:00.0534748Z             },
2026-06-18T11:18:00.0534829Z             {
2026-06-18T11:18:00.0534964Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-18T11:18:00.0535048Z               "line": 39
2026-06-18T11:18:00.0535124Z             }
2026-06-18T11:18:00.0535302Z           ]
2026-06-18T11:18:00.0535386Z         },
2026-06-18T11:18:00.0535485Z         "int": {
2026-06-18T11:18:00.0535581Z           "complete": false,
2026-06-18T11:18:00.0535671Z           "evidence": []
2026-06-18T11:18:00.0535755Z         },
2026-06-18T11:18:00.0535836Z         "unit": {
2026-06-18T11:18:00.0535927Z           "complete": true,
2026-06-18T11:18:00.0536023Z           "evidence": [
2026-06-18T11:18:00.0536108Z             {
2026-06-18T11:18:00.0536233Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-18T11:18:00.0536323Z               "line": 95
2026-06-18T11:18:00.0536403Z             }
2026-06-18T11:18:00.0536489Z           ]
2026-06-18T11:18:00.0536571Z         }
2026-06-18T11:18:00.0536666Z       }
2026-06-18T11:18:00.0536752Z     },
2026-06-18T11:18:00.0536838Z     {
2026-06-18T11:18:00.0536948Z       "id": "REQ-HAZARD-ROSTER-GHOST",
2026-06-18T11:18:00.0539330Z       "title": "A LOCAL subnet roster entry whose backing perch is erased does NOT keep advertising Active (no phantom perch-less endpoint). `api session-end <id> --erase` removes the perch (owlery dir gone) but the subnet roster (identity/registry/<subnet>.json) keeps the endpoint's instance row ACTIVE with no backing perch; `endpoint stop` says 'address unregistered' yet the line persists; no CLI verb forgets a roster entry, and a hand-edit is re-added by the single-writer daemon advertiser. FIX: daemon-side self-heal — the advertiser DROPS/forgets a LOCAL roster entry whose backing perch no longer exists (stops advertising it Active), and/or a `forget`/evict verb; verify whether the epoch lease eventually evicts it (slow-self-heal) vs a real leak and scope accordingly. doyle secondary finding (perri). (post-v0.10.0)",
2026-06-18T11:18:00.0539441Z       "requiredStages": [
2026-06-18T11:18:00.0539527Z         "impl",
2026-06-18T11:18:00.0539607Z         "unit"
2026-06-18T11:18:00.0539688Z       ],
2026-06-18T11:18:00.0539765Z       "stages": {
2026-06-18T11:18:00.0539850Z         "doc": {
2026-06-18T11:18:00.0539955Z           "complete": false,
2026-06-18T11:18:00.0540042Z           "evidence": []
2026-06-18T11:18:00.0540132Z         },
2026-06-18T11:18:00.0540207Z         "impl": {
2026-06-18T11:18:00.0540298Z           "complete": true,
2026-06-18T11:18:00.0540395Z           "evidence": [
2026-06-18T11:18:00.0540476Z             {
2026-06-18T11:18:00.0540607Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.0540693Z               "line": 488
2026-06-18T11:18:00.0540779Z             }
2026-06-18T11:18:00.0540863Z           ]
2026-06-18T11:18:00.0540948Z         },
2026-06-18T11:18:00.0541030Z         "int": {
2026-06-18T11:18:00.0541126Z           "complete": false,
2026-06-18T11:18:00.0541210Z           "evidence": []
2026-06-18T11:18:00.0541287Z         },
2026-06-18T11:18:00.0541373Z         "unit": {
2026-06-18T11:18:00.0541459Z           "complete": true,
2026-06-18T11:18:00.0541558Z           "evidence": [
2026-06-18T11:18:00.0541640Z             {
2026-06-18T11:18:00.0541773Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.0541859Z               "line": 1466
2026-06-18T11:18:00.0541945Z             }
2026-06-18T11:18:00.0542032Z           ]
2026-06-18T11:18:00.0542112Z         }
2026-06-18T11:18:00.0542197Z       }
2026-06-18T11:18:00.0542384Z     },
2026-06-18T11:18:00.0542465Z     {
2026-06-18T11:18:00.0542565Z       "id": "REQ-HAZARD-SELF-ELEVATE",
2026-06-18T11:18:00.0544689Z       "title": "Self-elevation (REQ-ELEVATE-1) re-runs the EXACT original invocation with the binary's ABSOLUTE exe path — never widening privilege scope, never adding/altering args, never via a PATH-resolved bare name, never via a shell-interpolated command string (argv-array only, no `sh -c`); the elevated child drops state back to the user (composes with the 5.7 de-elevation) and NEVER re-elevates (loop-safe: decide_elevation_path returns AlreadyElevated whenever the process is already Elevated, on every OS). The user's UAC/polkit/sudo prompt is the only consent gate — we never bypass it; the print-hint floor prints the absolute-path command too. The unprivileged parent never depends on (pipes/captures) the privileged child's stdout.",
2026-06-18T11:18:00.0544894Z       "requiredStages": [
2026-06-18T11:18:00.0544983Z         "unit"
2026-06-18T11:18:00.0545069Z       ],
2026-06-18T11:18:00.0545170Z       "stages": {
2026-06-18T11:18:00.0545251Z         "doc": {
2026-06-18T11:18:00.0545346Z           "complete": false,
2026-06-18T11:18:00.0545446Z           "evidence": []
2026-06-18T11:18:00.0545524Z         },
2026-06-18T11:18:00.0545613Z         "impl": {
2026-06-18T11:18:00.0545694Z           "complete": true,
2026-06-18T11:18:00.0545791Z           "evidence": [
2026-06-18T11:18:00.0545867Z             {
2026-06-18T11:18:00.0545975Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0546060Z               "line": 3378
2026-06-18T11:18:00.0546141Z             },
2026-06-18T11:18:00.0546226Z             {
2026-06-18T11:18:00.0546349Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0546435Z               "line": 3430
2026-06-18T11:18:00.0546511Z             },
2026-06-18T11:18:00.0546592Z             {
2026-06-18T11:18:00.0546697Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0546788Z               "line": 3475
2026-06-18T11:18:00.0546883Z             },
2026-06-18T11:18:00.0546963Z             {
2026-06-18T11:18:00.0547083Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.0547169Z               "line": 92
2026-06-18T11:18:00.0547260Z             },
2026-06-18T11:18:00.0547340Z             {
2026-06-18T11:18:00.0547451Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.0547536Z               "line": 148
2026-06-18T11:18:00.0547621Z             },
2026-06-18T11:18:00.0547703Z             {
2026-06-18T11:18:00.0547808Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.0547903Z               "line": 192
2026-06-18T11:18:00.0547998Z             },
2026-06-18T11:18:00.0548076Z             {
2026-06-18T11:18:00.0548180Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.0548261Z               "line": 200
2026-06-18T11:18:00.0548343Z             },
2026-06-18T11:18:00.0548424Z             {
2026-06-18T11:18:00.0548537Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.0548638Z               "line": 211
2026-06-18T11:18:00.0548720Z             },
2026-06-18T11:18:00.0548800Z             {
2026-06-18T11:18:00.0548899Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.0549066Z               "line": 265
2026-06-18T11:18:00.0549152Z             },
2026-06-18T11:18:00.0549237Z             {
2026-06-18T11:18:00.0549343Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.0549438Z               "line": 279
2026-06-18T11:18:00.0549528Z             }
2026-06-18T11:18:00.0549614Z           ]
2026-06-18T11:18:00.0549696Z         },
2026-06-18T11:18:00.0549786Z         "int": {
2026-06-18T11:18:00.0549876Z           "complete": false,
2026-06-18T11:18:00.0549972Z           "evidence": []
2026-06-18T11:18:00.0550053Z         },
2026-06-18T11:18:00.0550134Z         "unit": {
2026-06-18T11:18:00.0550224Z           "complete": true,
2026-06-18T11:18:00.0550307Z           "evidence": [
2026-06-18T11:18:00.0550487Z             {
2026-06-18T11:18:00.0550592Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.0550687Z               "line": 419
2026-06-18T11:18:00.0550763Z             },
2026-06-18T11:18:00.0550840Z             {
2026-06-18T11:18:00.0550946Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.0551044Z               "line": 470
2026-06-18T11:18:00.0551134Z             },
2026-06-18T11:18:00.0551215Z             {
2026-06-18T11:18:00.0551325Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.0551413Z               "line": 499
2026-06-18T11:18:00.0551498Z             },
2026-06-18T11:18:00.0551666Z             {
2026-06-18T11:18:00.0551771Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.0551875Z               "line": 526
2026-06-18T11:18:00.0551958Z             }
2026-06-18T11:18:00.0552038Z           ]
2026-06-18T11:18:00.0552118Z         }
2026-06-18T11:18:00.0552205Z       }
2026-06-18T11:18:00.0552287Z     },
2026-06-18T11:18:00.0552376Z     {
2026-06-18T11:18:00.0552491Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-18T11:18:00.0552672Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-18T11:18:00.0552776Z       "requiredStages": [
2026-06-18T11:18:00.0552854Z         "impl",
2026-06-18T11:18:00.0552935Z         "unit"
2026-06-18T11:18:00.0553020Z       ],
2026-06-18T11:18:00.0553105Z       "stages": {
2026-06-18T11:18:00.0553193Z         "doc": {
2026-06-18T11:18:00.0553278Z           "complete": false,
2026-06-18T11:18:00.0553373Z           "evidence": []
2026-06-18T11:18:00.0553445Z         },
2026-06-18T11:18:00.0553541Z         "impl": {
2026-06-18T11:18:00.0553635Z           "complete": true,
2026-06-18T11:18:00.0553725Z           "evidence": [
2026-06-18T11:18:00.0553808Z             {
2026-06-18T11:18:00.0553940Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.0554039Z               "line": 62
2026-06-18T11:18:00.0554125Z             },
2026-06-18T11:18:00.0554220Z             {
2026-06-18T11:18:00.0554342Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.0554428Z               "line": 71
2026-06-18T11:18:00.0554510Z             },
2026-06-18T11:18:00.0554596Z             {
2026-06-18T11:18:00.0554714Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.0554796Z               "line": 80
2026-06-18T11:18:00.0554881Z             },
2026-06-18T11:18:00.0554967Z             {
2026-06-18T11:18:00.0555092Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.0555177Z               "line": 88
2026-06-18T11:18:00.0555277Z             },
2026-06-18T11:18:00.0555358Z             {
2026-06-18T11:18:00.0555478Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0555568Z               "line": 33
2026-06-18T11:18:00.0555648Z             },
2026-06-18T11:18:00.0555731Z             {
2026-06-18T11:18:00.0555840Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0555921Z               "line": 65
2026-06-18T11:18:00.0556006Z             },
2026-06-18T11:18:00.0556088Z             {
2026-06-18T11:18:00.0556201Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0556288Z               "line": 74
2026-06-18T11:18:00.0556375Z             },
2026-06-18T11:18:00.0556460Z             {
2026-06-18T11:18:00.0556563Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0556643Z               "line": 93
2026-06-18T11:18:00.0556730Z             },
2026-06-18T11:18:00.0556810Z             {
2026-06-18T11:18:00.0556918Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0557018Z               "line": 102
2026-06-18T11:18:00.0557105Z             },
2026-06-18T11:18:00.0557190Z             {
2026-06-18T11:18:00.0557300Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0557387Z               "line": 111
2026-06-18T11:18:00.0557547Z             },
2026-06-18T11:18:00.0557629Z             {
2026-06-18T11:18:00.0557743Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0557838Z               "line": 122
2026-06-18T11:18:00.0557919Z             },
2026-06-18T11:18:00.0558002Z             {
2026-06-18T11:18:00.0558101Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0558191Z               "line": 140
2026-06-18T11:18:00.0558273Z             },
2026-06-18T11:18:00.0558355Z             {
2026-06-18T11:18:00.0558468Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0558558Z               "line": 149
2026-06-18T11:18:00.0558716Z             },
2026-06-18T11:18:00.0558792Z             {
2026-06-18T11:18:00.0558913Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0559068Z               "line": 158
2026-06-18T11:18:00.0559150Z             },
2026-06-18T11:18:00.0559242Z             {
2026-06-18T11:18:00.0559350Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0559464Z               "line": 169
2026-06-18T11:18:00.0559545Z             },
2026-06-18T11:18:00.0559631Z             {
2026-06-18T11:18:00.0559745Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0559835Z               "line": 177
2026-06-18T11:18:00.0559912Z             },
2026-06-18T11:18:00.0559998Z             {
2026-06-18T11:18:00.0560112Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0560193Z               "line": 186
2026-06-18T11:18:00.0560280Z             },
2026-06-18T11:18:00.0560365Z             {
2026-06-18T11:18:00.0560464Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0560566Z               "line": 195
2026-06-18T11:18:00.0560647Z             },
2026-06-18T11:18:00.0560727Z             {
2026-06-18T11:18:00.0560833Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0560923Z               "line": 204
2026-06-18T11:18:00.0561004Z             },
2026-06-18T11:18:00.0561094Z             {
2026-06-18T11:18:00.0561201Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0561295Z               "line": 216
2026-06-18T11:18:00.0561371Z             },
2026-06-18T11:18:00.0561457Z             {
2026-06-18T11:18:00.0561572Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0561662Z               "line": 223
2026-06-18T11:18:00.0561737Z             },
2026-06-18T11:18:00.0561823Z             {
2026-06-18T11:18:00.0561927Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0562016Z               "line": 232
2026-06-18T11:18:00.0562097Z             },
2026-06-18T11:18:00.0562193Z             {
2026-06-18T11:18:00.0562312Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0562392Z               "line": 239
2026-06-18T11:18:00.0562474Z             },
2026-06-18T11:18:00.0562560Z             {
2026-06-18T11:18:00.0562664Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0562750Z               "line": 306
2026-06-18T11:18:00.0562837Z             },
2026-06-18T11:18:00.0562918Z             {
2026-06-18T11:18:00.0563021Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0563100Z               "line": 318
2026-06-18T11:18:00.0563185Z             },
2026-06-18T11:18:00.0563270Z             {
2026-06-18T11:18:00.0563370Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0563457Z               "line": 405
2026-06-18T11:18:00.0563542Z             }
2026-06-18T11:18:00.0563618Z           ]
2026-06-18T11:18:00.0563704Z         },
2026-06-18T11:18:00.0563781Z         "int": {
2026-06-18T11:18:00.0563885Z           "complete": false,
2026-06-18T11:18:00.0563975Z           "evidence": []
2026-06-18T11:18:00.0564054Z         },
2026-06-18T11:18:00.0564143Z         "unit": {
2026-06-18T11:18:00.0564228Z           "complete": true,
2026-06-18T11:18:00.0564330Z           "evidence": [
2026-06-18T11:18:00.0564538Z             {
2026-06-18T11:18:00.0564652Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0564737Z               "line": 487
2026-06-18T11:18:00.0564822Z             },
2026-06-18T11:18:00.0564906Z             {
2026-06-18T11:18:00.0565017Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0565112Z               "line": 528
2026-06-18T11:18:00.0565198Z             },
2026-06-18T11:18:00.0565279Z             {
2026-06-18T11:18:00.0565390Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0565475Z               "line": 541
2026-06-18T11:18:00.0565560Z             },
2026-06-18T11:18:00.0565737Z             {
2026-06-18T11:18:00.0565856Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0565946Z               "line": 627
2026-06-18T11:18:00.0566033Z             }
2026-06-18T11:18:00.0566123Z           ]
2026-06-18T11:18:00.0566213Z         }
2026-06-18T11:18:00.0566296Z       }
2026-06-18T11:18:00.0566386Z     },
2026-06-18T11:18:00.0566466Z     {
2026-06-18T11:18:00.0566571Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-18T11:18:00.0566761Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-18T11:18:00.0566862Z       "requiredStages": [
2026-06-18T11:18:00.0566949Z         "impl",
2026-06-18T11:18:00.0567035Z         "unit"
2026-06-18T11:18:00.0567114Z       ],
2026-06-18T11:18:00.0567208Z       "stages": {
2026-06-18T11:18:00.0567290Z         "doc": {
2026-06-18T11:18:00.0567389Z           "complete": false,
2026-06-18T11:18:00.0567483Z           "evidence": []
2026-06-18T11:18:00.0567560Z         },
2026-06-18T11:18:00.0567660Z         "impl": {
2026-06-18T11:18:00.0567746Z           "complete": true,
2026-06-18T11:18:00.0567836Z           "evidence": [
2026-06-18T11:18:00.0567918Z             {
2026-06-18T11:18:00.0568033Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T11:18:00.0568127Z               "line": 173
2026-06-18T11:18:00.0568204Z             },
2026-06-18T11:18:00.0568304Z             {
2026-06-18T11:18:00.0568422Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.0568519Z               "line": 167
2026-06-18T11:18:00.0568605Z             }
2026-06-18T11:18:00.0568695Z           ]
2026-06-18T11:18:00.0568780Z         },
2026-06-18T11:18:00.0568872Z         "int": {
2026-06-18T11:18:00.0569052Z           "complete": false,
2026-06-18T11:18:00.0569138Z           "evidence": []
2026-06-18T11:18:00.0569220Z         },
2026-06-18T11:18:00.0569314Z         "unit": {
2026-06-18T11:18:00.0569410Z           "complete": true,
2026-06-18T11:18:00.0569506Z           "evidence": [
2026-06-18T11:18:00.0569596Z             {
2026-06-18T11:18:00.0569710Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T11:18:00.0569788Z               "line": 295
2026-06-18T11:18:00.0569906Z             },
2026-06-18T11:18:00.0569981Z             {
2026-06-18T11:18:00.0570105Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.0570210Z               "line": 832
2026-06-18T11:18:00.0570338Z             },
2026-06-18T11:18:00.0570419Z             {
2026-06-18T11:18:00.0570530Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.0570610Z               "line": 845
2026-06-18T11:18:00.0570701Z             }
2026-06-18T11:18:00.0570778Z           ]
2026-06-18T11:18:00.0570868Z         }
2026-06-18T11:18:00.0570953Z       }
2026-06-18T11:18:00.0571029Z     },
2026-06-18T11:18:00.0571107Z     {
2026-06-18T11:18:00.0571225Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-18T11:18:00.0571349Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-18T11:18:00.0571456Z       "requiredStages": [
2026-06-18T11:18:00.0571550Z         "impl",
2026-06-18T11:18:00.0571635Z         "unit"
2026-06-18T11:18:00.0571713Z       ],
2026-06-18T11:18:00.0571798Z       "stages": {
2026-06-18T11:18:00.0571883Z         "doc": {
2026-06-18T11:18:00.0571969Z           "complete": false,
2026-06-18T11:18:00.0572178Z           "evidence": []
2026-06-18T11:18:00.0572264Z         },
2026-06-18T11:18:00.0572354Z         "impl": {
2026-06-18T11:18:00.0572449Z           "complete": true,
2026-06-18T11:18:00.0572529Z           "evidence": [
2026-06-18T11:18:00.0572609Z             {
2026-06-18T11:18:00.0572729Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:18:00.0572816Z               "line": 116
2026-06-18T11:18:00.0572900Z             },
2026-06-18T11:18:00.0572977Z             {
2026-06-18T11:18:00.0573102Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.0573182Z               "line": 507
2026-06-18T11:18:00.0573373Z             }
2026-06-18T11:18:00.0573482Z           ]
2026-06-18T11:18:00.0573601Z         },
2026-06-18T11:18:00.0573693Z         "int": {
2026-06-18T11:18:00.0573783Z           "complete": false,
2026-06-18T11:18:00.0573868Z           "evidence": []
2026-06-18T11:18:00.0573954Z         },
2026-06-18T11:18:00.0574036Z         "unit": {
2026-06-18T11:18:00.0574136Z           "complete": true,
2026-06-18T11:18:00.0574230Z           "evidence": [
2026-06-18T11:18:00.0574318Z             {
2026-06-18T11:18:00.0574440Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.0574531Z               "line": 541
2026-06-18T11:18:00.0574609Z             }
2026-06-18T11:18:00.0574694Z           ]
2026-06-18T11:18:00.0574774Z         }
2026-06-18T11:18:00.0574860Z       }
2026-06-18T11:18:00.0574957Z     },
2026-06-18T11:18:00.0575037Z     {
2026-06-18T11:18:00.0575159Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-18T11:18:00.0575326Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-18T11:18:00.0575429Z       "requiredStages": [
2026-06-18T11:18:00.0575510Z         "impl",
2026-06-18T11:18:00.0575596Z         "unit"
2026-06-18T11:18:00.0575682Z       ],
2026-06-18T11:18:00.0575768Z       "stages": {
2026-06-18T11:18:00.0575853Z         "doc": {
2026-06-18T11:18:00.0575935Z           "complete": false,
2026-06-18T11:18:00.0576040Z           "evidence": []
2026-06-18T11:18:00.0576124Z         },
2026-06-18T11:18:00.0576217Z         "impl": {
2026-06-18T11:18:00.0576312Z           "complete": true,
2026-06-18T11:18:00.0576402Z           "evidence": [
2026-06-18T11:18:00.0576488Z             {
2026-06-18T11:18:00.0576617Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.0576703Z               "line": 552
2026-06-18T11:18:00.0576783Z             },
2026-06-18T11:18:00.0576870Z             {
2026-06-18T11:18:00.0576993Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-18T11:18:00.0577079Z               "line": 28
2026-06-18T11:18:00.0577185Z             }
2026-06-18T11:18:00.0577266Z           ]
2026-06-18T11:18:00.0577345Z         },
2026-06-18T11:18:00.0577427Z         "int": {
2026-06-18T11:18:00.0577514Z           "complete": false,
2026-06-18T11:18:00.0577599Z           "evidence": []
2026-06-18T11:18:00.0577683Z         },
2026-06-18T11:18:00.0577769Z         "unit": {
2026-06-18T11:18:00.0577864Z           "complete": true,
2026-06-18T11:18:00.0577963Z           "evidence": [
2026-06-18T11:18:00.0578048Z             {
2026-06-18T11:18:00.0578167Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-18T11:18:00.0578255Z               "line": 229
2026-06-18T11:18:00.0578338Z             }
2026-06-18T11:18:00.0578420Z           ]
2026-06-18T11:18:00.0578502Z         }
2026-06-18T11:18:00.0578583Z       }
2026-06-18T11:18:00.0578667Z     },
2026-06-18T11:18:00.0578749Z     {
2026-06-18T11:18:00.0578869Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-18T11:18:00.0579069Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-18T11:18:00.0579174Z       "requiredStages": [],
2026-06-18T11:18:00.0579255Z       "stages": {
2026-06-18T11:18:00.0579340Z         "doc": {
2026-06-18T11:18:00.0579432Z           "complete": false,
2026-06-18T11:18:00.0579526Z           "evidence": []
2026-06-18T11:18:00.0579612Z         },
2026-06-18T11:18:00.0579809Z         "impl": {
2026-06-18T11:18:00.0579908Z           "complete": false,
2026-06-18T11:18:00.0580003Z           "evidence": []
2026-06-18T11:18:00.0580086Z         },
2026-06-18T11:18:00.0580175Z         "int": {
2026-06-18T11:18:00.0580275Z           "complete": false,
2026-06-18T11:18:00.0580372Z           "evidence": []
2026-06-18T11:18:00.0580453Z         },
2026-06-18T11:18:00.0580536Z         "unit": {
2026-06-18T11:18:00.0580622Z           "complete": false,
2026-06-18T11:18:00.0580718Z           "evidence": []
2026-06-18T11:18:00.0580790Z         }
2026-06-18T11:18:00.0580875Z       }
2026-06-18T11:18:00.0580965Z     },
2026-06-18T11:18:00.0581143Z     {
2026-06-18T11:18:00.0581266Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-18T11:18:00.0581414Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-18T11:18:00.0581513Z       "requiredStages": [
2026-06-18T11:18:00.0581599Z         "impl",
2026-06-18T11:18:00.0581682Z         "unit"
2026-06-18T11:18:00.0581781Z       ],
2026-06-18T11:18:00.0581866Z       "stages": {
2026-06-18T11:18:00.0581948Z         "doc": {
2026-06-18T11:18:00.0582044Z           "complete": false,
2026-06-18T11:18:00.0582129Z           "evidence": []
2026-06-18T11:18:00.0582210Z         },
2026-06-18T11:18:00.0582297Z         "impl": {
2026-06-18T11:18:00.0582391Z           "complete": true,
2026-06-18T11:18:00.0582477Z           "evidence": [
2026-06-18T11:18:00.0582553Z             {
2026-06-18T11:18:00.0582664Z               "path": "crates/spt-live/src/turn.rs",
2026-06-18T11:18:00.0582762Z               "line": 19
2026-06-18T11:18:00.0582847Z             },
2026-06-18T11:18:00.0582933Z             {
2026-06-18T11:18:00.0583056Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0583141Z               "line": 463
2026-06-18T11:18:00.0583232Z             },
2026-06-18T11:18:00.0583318Z             {
2026-06-18T11:18:00.0583442Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0583532Z               "line": 499
2026-06-18T11:18:00.0583614Z             },
2026-06-18T11:18:00.0583704Z             {
2026-06-18T11:18:00.0583818Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0583915Z               "line": 547
2026-06-18T11:18:00.0584000Z             },
2026-06-18T11:18:00.0584080Z             {
2026-06-18T11:18:00.0584195Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-18T11:18:00.0584281Z               "line": 15
2026-06-18T11:18:00.0584362Z             },
2026-06-18T11:18:00.0584443Z             {
2026-06-18T11:18:00.0584549Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-18T11:18:00.0584648Z               "line": 48
2026-06-18T11:18:00.0584729Z             },
2026-06-18T11:18:00.0584815Z             {
2026-06-18T11:18:00.0584930Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-18T11:18:00.0585020Z               "line": 119
2026-06-18T11:18:00.0585101Z             },
2026-06-18T11:18:00.0585188Z             {
2026-06-18T11:18:00.0585291Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0585387Z               "line": 3806
2026-06-18T11:18:00.0585464Z             }
2026-06-18T11:18:00.0585555Z           ]
2026-06-18T11:18:00.0585634Z         },
2026-06-18T11:18:00.0585719Z         "int": {
2026-06-18T11:18:00.0585820Z           "complete": false,
2026-06-18T11:18:00.0585914Z           "evidence": []
2026-06-18T11:18:00.0586009Z         },
2026-06-18T11:18:00.0586094Z         "unit": {
2026-06-18T11:18:00.0586185Z           "complete": true,
2026-06-18T11:18:00.0586276Z           "evidence": [
2026-06-18T11:18:00.0586361Z             {
2026-06-18T11:18:00.0586490Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0586576Z               "line": 765
2026-06-18T11:18:00.0586666Z             },
2026-06-18T11:18:00.0586743Z             {
2026-06-18T11:18:00.0586853Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-18T11:18:00.0586938Z               "line": 165
2026-06-18T11:18:00.0587101Z             },
2026-06-18T11:18:00.0587186Z             {
2026-06-18T11:18:00.0587301Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-18T11:18:00.0587396Z               "line": 175
2026-06-18T11:18:00.0587482Z             }
2026-06-18T11:18:00.0587567Z           ]
2026-06-18T11:18:00.0587648Z         }
2026-06-18T11:18:00.0587726Z       }
2026-06-18T11:18:00.0587807Z     },
2026-06-18T11:18:00.0587887Z     {
2026-06-18T11:18:00.0587992Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-18T11:18:00.0588852Z       "title": "Elevation guidance on Unix names the binary's ABSOLUTE path under sudo (a user-local install ~/.local/bin · ~/.cargo/bin is not on sudo's secure_path, so bare `sudo spt` dies 'command not found'); gated commands auto-elevate on an interactive TTY, else print the runnable hint (5.10)",
2026-06-18T11:18:00.0589114Z       "requiredStages": [
2026-06-18T11:18:00.0589200Z         "impl",
2026-06-18T11:18:00.0589285Z         "unit"
2026-06-18T11:18:00.0589372Z       ],
2026-06-18T11:18:00.0589467Z       "stages": {
2026-06-18T11:18:00.0589552Z         "doc": {
2026-06-18T11:18:00.0589649Z           "complete": false,
2026-06-18T11:18:00.0589739Z           "evidence": []
2026-06-18T11:18:00.0589825Z         },
2026-06-18T11:18:00.0589905Z         "impl": {
2026-06-18T11:18:00.0590002Z           "complete": true,
2026-06-18T11:18:00.0590087Z           "evidence": [
2026-06-18T11:18:00.0590173Z             {
2026-06-18T11:18:00.0590293Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.0590373Z               "line": 192
2026-06-18T11:18:00.0590453Z             },
2026-06-18T11:18:00.0590544Z             {
2026-06-18T11:18:00.0590660Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.0590749Z               "line": 279
2026-06-18T11:18:00.0590840Z             }
2026-06-18T11:18:00.0590918Z           ]
2026-06-18T11:18:00.0590994Z         },
2026-06-18T11:18:00.0591073Z         "int": {
2026-06-18T11:18:00.0591172Z           "complete": false,
2026-06-18T11:18:00.0591268Z           "evidence": []
2026-06-18T11:18:00.0591350Z         },
2026-06-18T11:18:00.0591425Z         "unit": {
2026-06-18T11:18:00.0591520Z           "complete": true,
2026-06-18T11:18:00.0591607Z           "evidence": [
2026-06-18T11:18:00.0591693Z             {
2026-06-18T11:18:00.0591792Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.0591889Z               "line": 470
2026-06-18T11:18:00.0591965Z             },
2026-06-18T11:18:00.0592055Z             {
2026-06-18T11:18:00.0592155Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.0592242Z               "line": 526
2026-06-18T11:18:00.0592341Z             }
2026-06-18T11:18:00.0592421Z           ]
2026-06-18T11:18:00.0592503Z         }
2026-06-18T11:18:00.0592590Z       }
2026-06-18T11:18:00.0592679Z     },
2026-06-18T11:18:00.0592760Z     {
2026-06-18T11:18:00.0592876Z       "id": "REQ-HAZARD-TEMPLATE-ARGV-FILL",
2026-06-18T11:18:00.0599317Z       "title": "Command-template substitution fills argv ELEMENTS, not a re-tokenized string: spt-core currently `fill_template`s {key} values INTO the command STRING and THEN `tokenize`s the filled string (runtime.rs:94/122), so a multi-word {key} value whitespace-SPLITS into multiple argv tokens unless the adapter hand-quotes the placeholder, and a value containing a `\"` (or `;`) injects/breaks tokenization (shell-injection-adjacent). A filled value MUST become exactly ONE argv element regardless of spaces/quotes in the value. Fix: tokenize the TEMPLATE into argv FIRST, then `fill_template` EACH token, so a `{key}` slot resolves to a single element and the value never participates in tokenization (no whitespace-split, no quote/semicolon injection); preserve the missing-key / empty-command errors and `{{`/`}}` non-interpretation. perri's F-009 (v0.8.1 dogfood, argv-capture-confirmed): a multi-word `{psyche_prompt}` = \"PSYCHE REVIVAL time: epoch-ms:… incoming event: (none)\" arrived as argv[6..12] (7 stray tokens), the harness runner strict-parsed `--prompt` against the 2nd word, exited 2 within ~1s → phantom hosted perch. Applies to EVERY [session.<role>] template (psyche_init, extractor, notif, …); digest survives today only because its fills ({session_id}/{source}) are single-token.",
2026-06-18T11:18:00.0599670Z       "requiredStages": [
2026-06-18T11:18:00.0599755Z         "impl",
2026-06-18T11:18:00.0599836Z         "unit",
2026-06-18T11:18:00.0599913Z         "int"
2026-06-18T11:18:00.0599994Z       ],
2026-06-18T11:18:00.0600075Z       "stages": {
2026-06-18T11:18:00.0600155Z         "doc": {
2026-06-18T11:18:00.0600251Z           "complete": false,
2026-06-18T11:18:00.0600446Z           "evidence": []
2026-06-18T11:18:00.0600528Z         },
2026-06-18T11:18:00.0600618Z         "impl": {
2026-06-18T11:18:00.0600714Z           "complete": true,
2026-06-18T11:18:00.0600814Z           "evidence": [
2026-06-18T11:18:00.0600891Z             {
2026-06-18T11:18:00.0601038Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-18T11:18:00.0601138Z               "line": 95
2026-06-18T11:18:00.0601220Z             },
2026-06-18T11:18:00.0601300Z             {
2026-06-18T11:18:00.0601429Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.0601525Z               "line": 132
2026-06-18T11:18:00.0601610Z             },
2026-06-18T11:18:00.0601694Z             {
2026-06-18T11:18:00.0601819Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T11:18:00.0601920Z               "line": 434
2026-06-18T11:18:00.0602000Z             },
2026-06-18T11:18:00.0602076Z             {
2026-06-18T11:18:00.0602201Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0602296Z               "line": 139
2026-06-18T11:18:00.0602381Z             },
2026-06-18T11:18:00.0602454Z             {
2026-06-18T11:18:00.0602587Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0602676Z               "line": 326
2026-06-18T11:18:00.0602773Z             },
2026-06-18T11:18:00.0602859Z             {
2026-06-18T11:18:00.0602972Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0603063Z               "line": 555
2026-06-18T11:18:00.0603145Z             }
2026-06-18T11:18:00.0603225Z           ]
2026-06-18T11:18:00.0603306Z         },
2026-06-18T11:18:00.0603393Z         "int": {
2026-06-18T11:18:00.0603493Z           "complete": true,
2026-06-18T11:18:00.0603582Z           "evidence": [
2026-06-18T11:18:00.0603664Z             {
2026-06-18T11:18:00.0603813Z               "path": "crates/spt/tests/livehost_nonresident_e2e.rs",
2026-06-18T11:18:00.0603902Z               "line": 32
2026-06-18T11:18:00.0603996Z             }
2026-06-18T11:18:00.0604078Z           ]
2026-06-18T11:18:00.0604158Z         },
2026-06-18T11:18:00.0604242Z         "unit": {
2026-06-18T11:18:00.0604332Z           "complete": true,
2026-06-18T11:18:00.0604419Z           "evidence": [
2026-06-18T11:18:00.0604505Z             {
2026-06-18T11:18:00.0604637Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0604724Z               "line": 625
2026-06-18T11:18:00.0604815Z             },
2026-06-18T11:18:00.0604895Z             {
2026-06-18T11:18:00.0605015Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0605101Z               "line": 646
2026-06-18T11:18:00.0605182Z             },
2026-06-18T11:18:00.0605267Z             {
2026-06-18T11:18:00.0605383Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0605473Z               "line": 662
2026-06-18T11:18:00.0605548Z             },
2026-06-18T11:18:00.0605635Z             {
2026-06-18T11:18:00.0605758Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0605854Z               "line": 680
2026-06-18T11:18:00.0605940Z             },
2026-06-18T11:18:00.0606027Z             {
2026-06-18T11:18:00.0606145Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0606318Z               "line": 704
2026-06-18T11:18:00.0606416Z             }
2026-06-18T11:18:00.0606502Z           ]
2026-06-18T11:18:00.0606585Z         }
2026-06-18T11:18:00.0606666Z       }
2026-06-18T11:18:00.0606750Z     },
2026-06-18T11:18:00.0606831Z     {
2026-06-18T11:18:00.0606935Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-18T11:18:00.0607100Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-18T11:18:00.0607199Z       "requiredStages": [
2026-06-18T11:18:00.0607286Z         "impl",
2026-06-18T11:18:00.0607377Z         "unit"
2026-06-18T11:18:00.0607457Z       ],
2026-06-18T11:18:00.0607543Z       "stages": {
2026-06-18T11:18:00.0607697Z         "doc": {
2026-06-18T11:18:00.0607801Z           "complete": false,
2026-06-18T11:18:00.0607897Z           "evidence": []
2026-06-18T11:18:00.0607973Z         },
2026-06-18T11:18:00.0608063Z         "impl": {
2026-06-18T11:18:00.0608153Z           "complete": true,
2026-06-18T11:18:00.0608250Z           "evidence": [
2026-06-18T11:18:00.0608340Z             {
2026-06-18T11:18:00.0608459Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-18T11:18:00.0608551Z               "line": 35
2026-06-18T11:18:00.0608635Z             }
2026-06-18T11:18:00.0608721Z           ]
2026-06-18T11:18:00.0608802Z         },
2026-06-18T11:18:00.0608889Z         "int": {
2026-06-18T11:18:00.0609069Z           "complete": false,
2026-06-18T11:18:00.0609161Z           "evidence": []
2026-06-18T11:18:00.0609246Z         },
2026-06-18T11:18:00.0609326Z         "unit": {
2026-06-18T11:18:00.0609425Z           "complete": true,
2026-06-18T11:18:00.0609517Z           "evidence": [
2026-06-18T11:18:00.0609601Z             {
2026-06-18T11:18:00.0609723Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-18T11:18:00.0609814Z               "line": 220
2026-06-18T11:18:00.0609896Z             }
2026-06-18T11:18:00.0609977Z           ]
2026-06-18T11:18:00.0610057Z         }
2026-06-18T11:18:00.0610139Z       }
2026-06-18T11:18:00.0610230Z     },
2026-06-18T11:18:00.0610310Z     {
2026-06-18T11:18:00.0610429Z       "id": "REQ-HAZARD-UNHOST-PSYCHE-REAP",
2026-06-18T11:18:00.0613561Z       "title": "On un-host, the detached `{id}-psyche` HARNESS PROCESS is reaped — not just its in-brain pulse-driver thread. Today stop_host (livehost.rs:203) trips the HostedLife stop flag + JOINS the driver thread, but the Psyche is a detached harness process (spawn_psyche → ManifestRuntime detached spawn, runtime.rs:341-356; its pid is untracked in HostedLife though stamped on the `{id}-psyche` perch, where residency-confirm already reads it). So endpoint-stop / mid-life agent-death / a B2/B5 offline-then-unhost leaves the psyche process ORPHANED, alive until the next daemon-stop (where Breap's job/group reaps the whole brain subtree). The Psyche STAYS a harness process by design (CONTEXT.md 97/203/251 — headless harness session, its own perch) — the fix does NOT move it in-brain; it SCOPED-kills the `{id}-psyche` pid on un-host (never machine-wide — shared box). Track the pid in HostedLife at host_one (cleanest) or read the `{id}-psyche` perch pid at stop_host. Composes with H3 (endpoint stop → offline → reconcile un-host → reap) and B2/B5 (the offline arms that trigger un-host). (v0.12.0)",
2026-06-18T11:18:00.0613681Z       "requiredStages": [
2026-06-18T11:18:00.0613771Z         "impl",
2026-06-18T11:18:00.0613852Z         "unit",
2026-06-18T11:18:00.0613933Z         "int"
2026-06-18T11:18:00.0614020Z       ],
2026-06-18T11:18:00.0614100Z       "stages": {
2026-06-18T11:18:00.0614195Z         "doc": {
2026-06-18T11:18:00.0614292Z           "complete": false,
2026-06-18T11:18:00.0614373Z           "evidence": []
2026-06-18T11:18:00.0614471Z         },
2026-06-18T11:18:00.0614556Z         "impl": {
2026-06-18T11:18:00.0614652Z           "complete": true,
2026-06-18T11:18:00.0614737Z           "evidence": [
2026-06-18T11:18:00.0614826Z             {
2026-06-18T11:18:00.0614965Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.0615164Z               "line": 202
2026-06-18T11:18:00.0615251Z             },
2026-06-18T11:18:00.0615332Z             {
2026-06-18T11:18:00.0615450Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-18T11:18:00.0615536Z               "line": 107
2026-06-18T11:18:00.0615624Z             },
2026-06-18T11:18:00.0615704Z             {
2026-06-18T11:18:00.0615818Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-18T11:18:00.0615905Z               "line": 138
2026-06-18T11:18:00.0615985Z             },
2026-06-18T11:18:00.0616066Z             {
2026-06-18T11:18:00.0616180Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0616272Z               "line": 209
2026-06-18T11:18:00.0616466Z             },
2026-06-18T11:18:00.0616553Z             {
2026-06-18T11:18:00.0616676Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0616762Z               "line": 246
2026-06-18T11:18:00.0616849Z             },
2026-06-18T11:18:00.0616935Z             {
2026-06-18T11:18:00.0617062Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0617159Z               "line": 379
2026-06-18T11:18:00.0617236Z             }
2026-06-18T11:18:00.0617319Z           ]
2026-06-18T11:18:00.0617405Z         },
2026-06-18T11:18:00.0617491Z         "int": {
2026-06-18T11:18:00.0617590Z           "complete": true,
2026-06-18T11:18:00.0617669Z           "evidence": [
2026-06-18T11:18:00.0617750Z             {
2026-06-18T11:18:00.0617885Z               "path": "crates/spt/tests/unhost_psyche_reap_e2e.rs",
2026-06-18T11:18:00.0617970Z               "line": 17
2026-06-18T11:18:00.0618056Z             }
2026-06-18T11:18:00.0618157Z           ]
2026-06-18T11:18:00.0618237Z         },
2026-06-18T11:18:00.0618322Z         "unit": {
2026-06-18T11:18:00.0618413Z           "complete": true,
2026-06-18T11:18:00.0618496Z           "evidence": [
2026-06-18T11:18:00.0618576Z             {
2026-06-18T11:18:00.0618699Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0618796Z               "line": 923
2026-06-18T11:18:00.0618876Z             }
2026-06-18T11:18:00.0619042Z           ]
2026-06-18T11:18:00.0619125Z         }
2026-06-18T11:18:00.0619205Z       }
2026-06-18T11:18:00.0619286Z     },
2026-06-18T11:18:00.0619367Z     {
2026-06-18T11:18:00.0619478Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-18T11:18:00.0619730Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-18T11:18:00.0619825Z       "requiredStages": [
2026-06-18T11:18:00.0619915Z         "impl",
2026-06-18T11:18:00.0619995Z         "unit"
2026-06-18T11:18:00.0620081Z       ],
2026-06-18T11:18:00.0620180Z       "stages": {
2026-06-18T11:18:00.0620256Z         "doc": {
2026-06-18T11:18:00.0620355Z           "complete": false,
2026-06-18T11:18:00.0620452Z           "evidence": []
2026-06-18T11:18:00.0620537Z         },
2026-06-18T11:18:00.0620612Z         "impl": {
2026-06-18T11:18:00.0620714Z           "complete": true,
2026-06-18T11:18:00.0620799Z           "evidence": [
2026-06-18T11:18:00.0620880Z             {
2026-06-18T11:18:00.0621014Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T11:18:00.0621090Z               "line": 405
2026-06-18T11:18:00.0621171Z             },
2026-06-18T11:18:00.0621256Z             {
2026-06-18T11:18:00.0621381Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.0621467Z               "line": 409
2026-06-18T11:18:00.0621552Z             },
2026-06-18T11:18:00.0621629Z             {
2026-06-18T11:18:00.0621748Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T11:18:00.0621848Z               "line": 156
2026-06-18T11:18:00.0621939Z             }
2026-06-18T11:18:00.0622020Z           ]
2026-06-18T11:18:00.0622105Z         },
2026-06-18T11:18:00.0622196Z         "int": {
2026-06-18T11:18:00.0622293Z           "complete": false,
2026-06-18T11:18:00.0622382Z           "evidence": []
2026-06-18T11:18:00.0622472Z         },
2026-06-18T11:18:00.0622674Z         "unit": {
2026-06-18T11:18:00.0622772Z           "complete": true,
2026-06-18T11:18:00.0622862Z           "evidence": [
2026-06-18T11:18:00.0622949Z             {
2026-06-18T11:18:00.0623068Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.0623158Z               "line": 865
2026-06-18T11:18:00.0623234Z             },
2026-06-18T11:18:00.0623312Z             {
2026-06-18T11:18:00.0623435Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.0623520Z               "line": 879
2026-06-18T11:18:00.0623607Z             },
2026-06-18T11:18:00.0623693Z             {
2026-06-18T11:18:00.0623908Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.0623998Z               "line": 898
2026-06-18T11:18:00.0624083Z             },
2026-06-18T11:18:00.0624159Z             {
2026-06-18T11:18:00.0624275Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.0624369Z               "line": 915
2026-06-18T11:18:00.0624459Z             },
2026-06-18T11:18:00.0624542Z             {
2026-06-18T11:18:00.0624674Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-18T11:18:00.0624760Z               "line": 441
2026-06-18T11:18:00.0624842Z             }
2026-06-18T11:18:00.0624923Z           ]
2026-06-18T11:18:00.0624999Z         }
2026-06-18T11:18:00.0625093Z       }
2026-06-18T11:18:00.0625169Z     },
2026-06-18T11:18:00.0625255Z     {
2026-06-18T11:18:00.0625362Z       "id": "REQ-HAZARD-VIEWER-ISOLATION",
2026-06-18T11:18:00.0627433Z       "title": "A slow / dead / hostile VIEWER must NEVER stall the controller, the PTY child, or the session drain thread. The broker drain fans output to the controller on the authoritative blocking bounded path (advances delivered_through) but to each viewer via a bounded per-viewer channel with a dedicated writer thread; the drain `try_send`s under the log lock and a viewer whose bounded queue OVERFLOWS (can't keep up) is EVICTED (queue dropped, writer thread ends, removed from the viewers map) — the drain thread NEVER touches a viewer socket, so no viewer write can backpressure or block it. A soft viewer cap bounds the thread count. Viewer eviction never perturbs the controller stream, the delivered_through cursor, or the child.",
2026-06-18T11:18:00.0627546Z       "requiredStages": [
2026-06-18T11:18:00.0627632Z         "unit",
2026-06-18T11:18:00.0627729Z         "int"
2026-06-18T11:18:00.0627815Z       ],
2026-06-18T11:18:00.0627898Z       "stages": {
2026-06-18T11:18:00.0627984Z         "doc": {
2026-06-18T11:18:00.0628074Z           "complete": true,
2026-06-18T11:18:00.0628164Z           "evidence": [
2026-06-18T11:18:00.0628249Z             {
2026-06-18T11:18:00.0628359Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T11:18:00.0628449Z               "line": 381
2026-06-18T11:18:00.0628530Z             }
2026-06-18T11:18:00.0628606Z           ]
2026-06-18T11:18:00.0628688Z         },
2026-06-18T11:18:00.0628764Z         "impl": {
2026-06-18T11:18:00.0628869Z           "complete": true,
2026-06-18T11:18:00.0629032Z           "evidence": [
2026-06-18T11:18:00.0629112Z             {
2026-06-18T11:18:00.0629230Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.0629317Z               "line": 98
2026-06-18T11:18:00.0629399Z             }
2026-06-18T11:18:00.0629489Z           ]
2026-06-18T11:18:00.0629569Z         },
2026-06-18T11:18:00.0629656Z         "int": {
2026-06-18T11:18:00.0629746Z           "complete": true,
2026-06-18T11:18:00.0629832Z           "evidence": [
2026-06-18T11:18:00.0629918Z             {
2026-06-18T11:18:00.0630033Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T11:18:00.0630136Z               "line": 920
2026-06-18T11:18:00.0630213Z             }
2026-06-18T11:18:00.0630295Z           ]
2026-06-18T11:18:00.0630381Z         },
2026-06-18T11:18:00.0630456Z         "unit": {
2026-06-18T11:18:00.0630555Z           "complete": true,
2026-06-18T11:18:00.0630637Z           "evidence": [
2026-06-18T11:18:00.0630830Z             {
2026-06-18T11:18:00.0630944Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.0631036Z               "line": 1534
2026-06-18T11:18:00.0631125Z             }
2026-06-18T11:18:00.0631206Z           ]
2026-06-18T11:18:00.0631284Z         }
2026-06-18T11:18:00.0631369Z       }
2026-06-18T11:18:00.0631449Z     },
2026-06-18T11:18:00.0631530Z     {
2026-06-18T11:18:00.0631641Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-18T11:18:00.0632413Z       "title": "WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)",
2026-06-18T11:18:00.0632613Z       "requiredStages": [
2026-06-18T11:18:00.0632713Z         "doc",
2026-06-18T11:18:00.0632794Z         "impl",
2026-06-18T11:18:00.0632882Z         "unit"
2026-06-18T11:18:00.0632970Z       ],
2026-06-18T11:18:00.0633066Z       "stages": {
2026-06-18T11:18:00.0633139Z         "doc": {
2026-06-18T11:18:00.0633225Z           "complete": true,
2026-06-18T11:18:00.0633318Z           "evidence": [
2026-06-18T11:18:00.0633398Z             {
2026-06-18T11:18:00.0633504Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T11:18:00.0633595Z               "line": 366
2026-06-18T11:18:00.0633680Z             }
2026-06-18T11:18:00.0633766Z           ]
2026-06-18T11:18:00.0633838Z         },
2026-06-18T11:18:00.0633929Z         "impl": {
2026-06-18T11:18:00.0634019Z           "complete": true,
2026-06-18T11:18:00.0634109Z           "evidence": [
2026-06-18T11:18:00.0634196Z             {
2026-06-18T11:18:00.0634319Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-18T11:18:00.0634410Z               "line": 87
2026-06-18T11:18:00.0634487Z             },
2026-06-18T11:18:00.0634568Z             {
2026-06-18T11:18:00.0634686Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-18T11:18:00.0634778Z               "line": 105
2026-06-18T11:18:00.0634863Z             },
2026-06-18T11:18:00.0634949Z             {
2026-06-18T11:18:00.0635078Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T11:18:00.0635164Z               "line": 55
2026-06-18T11:18:00.0635249Z             },
2026-06-18T11:18:00.0635330Z             {
2026-06-18T11:18:00.0635455Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T11:18:00.0635539Z               "line": 31
2026-06-18T11:18:00.0635624Z             },
2026-06-18T11:18:00.0635705Z             {
2026-06-18T11:18:00.0635824Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T11:18:00.0635923Z               "line": 446
2026-06-18T11:18:00.0636003Z             },
2026-06-18T11:18:00.0636089Z             {
2026-06-18T11:18:00.0636214Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T11:18:00.0636304Z               "line": 95
2026-06-18T11:18:00.0636395Z             },
2026-06-18T11:18:00.0636472Z             {
2026-06-18T11:18:00.0636599Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T11:18:00.0636691Z               "line": 29
2026-06-18T11:18:00.0636782Z             },
2026-06-18T11:18:00.0636871Z             {
2026-06-18T11:18:00.0636991Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T11:18:00.0637077Z               "line": 104
2026-06-18T11:18:00.0637153Z             },
2026-06-18T11:18:00.0637238Z             {
2026-06-18T11:18:00.0637363Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.0637458Z               "line": 208
2026-06-18T11:18:00.0637535Z             },
2026-06-18T11:18:00.0637616Z             {
2026-06-18T11:18:00.0637745Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-18T11:18:00.0637830Z               "line": 28
2026-06-18T11:18:00.0637916Z             },
2026-06-18T11:18:00.0637998Z             {
2026-06-18T11:18:00.0638120Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-18T11:18:00.0638289Z               "line": 74
2026-06-18T11:18:00.0638370Z             },
2026-06-18T11:18:00.0638449Z             {
2026-06-18T11:18:00.0638572Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-18T11:18:00.0638663Z               "line": 32
2026-06-18T11:18:00.0638752Z             },
2026-06-18T11:18:00.0638837Z             {
2026-06-18T11:18:00.0639048Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T11:18:00.0639132Z               "line": 40
2026-06-18T11:18:00.0639218Z             },
2026-06-18T11:18:00.0639301Z             {
2026-06-18T11:18:00.0639429Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T11:18:00.0639625Z               "line": 184
2026-06-18T11:18:00.0639716Z             },
2026-06-18T11:18:00.0639800Z             {
2026-06-18T11:18:00.0639901Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-18T11:18:00.0639996Z               "line": 61
2026-06-18T11:18:00.0640073Z             },
2026-06-18T11:18:00.0640168Z             {
2026-06-18T11:18:00.0640274Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-18T11:18:00.0640367Z               "line": 131
2026-06-18T11:18:00.0640454Z             },
2026-06-18T11:18:00.0640536Z             {
2026-06-18T11:18:00.0640654Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-18T11:18:00.0640745Z               "line": 223
2026-06-18T11:18:00.0640837Z             },
2026-06-18T11:18:00.0640913Z             {
2026-06-18T11:18:00.0641035Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-18T11:18:00.0641129Z               "line": 37
2026-06-18T11:18:00.0641201Z             },
2026-06-18T11:18:00.0641282Z             {
2026-06-18T11:18:00.0641404Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-18T11:18:00.0641504Z               "line": 38
2026-06-18T11:18:00.0641591Z             },
2026-06-18T11:18:00.0641671Z             {
2026-06-18T11:18:00.0641790Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-18T11:18:00.0641877Z               "line": 36
2026-06-18T11:18:00.0641967Z             },
2026-06-18T11:18:00.0642043Z             {
2026-06-18T11:18:00.0642163Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-18T11:18:00.0642248Z               "line": 40
2026-06-18T11:18:00.0642329Z             }
2026-06-18T11:18:00.0642415Z           ]
2026-06-18T11:18:00.0642492Z         },
2026-06-18T11:18:00.0642582Z         "int": {
2026-06-18T11:18:00.0642672Z           "complete": false,
2026-06-18T11:18:00.0642759Z           "evidence": []
2026-06-18T11:18:00.0642845Z         },
2026-06-18T11:18:00.0642935Z         "unit": {
2026-06-18T11:18:00.0643035Z           "complete": true,
2026-06-18T11:18:00.0643127Z           "evidence": [
2026-06-18T11:18:00.0643216Z             {
2026-06-18T11:18:00.0643340Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T11:18:00.0643437Z               "line": 212
2026-06-18T11:18:00.0643521Z             },
2026-06-18T11:18:00.0643617Z             {
2026-06-18T11:18:00.0643742Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-18T11:18:00.0643827Z               "line": 136
2026-06-18T11:18:00.0643911Z             },
2026-06-18T11:18:00.0643987Z             {
2026-06-18T11:18:00.0644117Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-18T11:18:00.0644212Z               "line": 685
2026-06-18T11:18:00.0644297Z             },
2026-06-18T11:18:00.0644379Z             {
2026-06-18T11:18:00.0644489Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-18T11:18:00.0644588Z               "line": 224
2026-06-18T11:18:00.0644665Z             },
2026-06-18T11:18:00.0644761Z             {
2026-06-18T11:18:00.0644888Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-18T11:18:00.0644975Z               "line": 206
2026-06-18T11:18:00.0645066Z             },
2026-06-18T11:18:00.0645151Z             {
2026-06-18T11:18:00.0645270Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-18T11:18:00.0645471Z               "line": 112
2026-06-18T11:18:00.0645561Z             },
2026-06-18T11:18:00.0645638Z             {
2026-06-18T11:18:00.0645743Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-18T11:18:00.0645842Z               "line": 157
2026-06-18T11:18:00.0645924Z             },
2026-06-18T11:18:00.0646011Z             {
2026-06-18T11:18:00.0646119Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-18T11:18:00.0646208Z               "line": 215
2026-06-18T11:18:00.0646294Z             },
2026-06-18T11:18:00.0646375Z             {
2026-06-18T11:18:00.0646483Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-18T11:18:00.0646654Z               "line": 141
2026-06-18T11:18:00.0646741Z             },
2026-06-18T11:18:00.0646826Z             {
2026-06-18T11:18:00.0646946Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-18T11:18:00.0647041Z               "line": 162
2026-06-18T11:18:00.0647126Z             }
2026-06-18T11:18:00.0647222Z           ]
2026-06-18T11:18:00.0647304Z         }
2026-06-18T11:18:00.0647389Z       }
2026-06-18T11:18:00.0647465Z     },
2026-06-18T11:18:00.0647551Z     {
2026-06-18T11:18:00.0647694Z       "id": "REQ-HAZARD-WIN-PTY-PROGRAM-RESOLVE",
2026-06-18T11:18:00.0649584Z       "title": "Native-PTY spawn must resolve a bare program name with PATHEXT precedence and run a non-PE target through its interpreter: portable-pty's own `which` takes the FIRST PATH match — an extensionless shebang shim (e.g. a node CLI `ccs` shipped beside `ccs.cmd`) — and CreateProcessW then rejects the non-PE file with os error 193 ('not a valid Win32 application'); spt-term resolves the program itself (PATHEXT order prefers .EXE over .CMD; .cmd/.bat → cmd.exe /d /c, .ps1 → powershell -NoProfile -File) so a bare harness/shell [session.self] command actually launches on Windows. Unix is a passthrough (execve honours the shebang).",
2026-06-18T11:18:00.0649688Z       "requiredStages": [
2026-06-18T11:18:00.0649783Z         "doc",
2026-06-18T11:18:00.0649880Z         "impl",
2026-06-18T11:18:00.0649956Z         "unit",
2026-06-18T11:18:00.0650041Z         "int"
2026-06-18T11:18:00.0650118Z       ],
2026-06-18T11:18:00.0650204Z       "stages": {
2026-06-18T11:18:00.0650290Z         "doc": {
2026-06-18T11:18:00.0650384Z           "complete": true,
2026-06-18T11:18:00.0650471Z           "evidence": [
2026-06-18T11:18:00.0650561Z             {
2026-06-18T11:18:00.0650670Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T11:18:00.0650772Z               "line": 250
2026-06-18T11:18:00.0650853Z             }
2026-06-18T11:18:00.0650932Z           ]
2026-06-18T11:18:00.0651019Z         },
2026-06-18T11:18:00.0651110Z         "impl": {
2026-06-18T11:18:00.0651214Z           "complete": true,
2026-06-18T11:18:00.0651309Z           "evidence": [
2026-06-18T11:18:00.0651402Z             {
2026-06-18T11:18:00.0651515Z               "path": "crates/spt-term/src/pty.rs",
2026-06-18T11:18:00.0651614Z               "line": 135
2026-06-18T11:18:00.0651704Z             },
2026-06-18T11:18:00.0651785Z             {
2026-06-18T11:18:00.0651898Z               "path": "crates/spt-term/src/pty.rs",
2026-06-18T11:18:00.0651988Z               "line": 157
2026-06-18T11:18:00.0652069Z             }
2026-06-18T11:18:00.0652151Z           ]
2026-06-18T11:18:00.0652241Z         },
2026-06-18T11:18:00.0652331Z         "int": {
2026-06-18T11:18:00.0652423Z           "complete": true,
2026-06-18T11:18:00.0652523Z           "evidence": [
2026-06-18T11:18:00.0652603Z             {
2026-06-18T11:18:00.0652733Z               "path": "crates/spt-term/tests/winspawn.rs",
2026-06-18T11:18:00.0652823Z               "line": 15
2026-06-18T11:18:00.0652917Z             }
2026-06-18T11:18:00.0653009Z           ]
2026-06-18T11:18:00.0653090Z         },
2026-06-18T11:18:00.0653171Z         "unit": {
2026-06-18T11:18:00.0653266Z           "complete": true,
2026-06-18T11:18:00.0653358Z           "evidence": [
2026-06-18T11:18:00.0653442Z             {
2026-06-18T11:18:00.0653696Z               "path": "crates/spt-term/src/winprog.rs",
2026-06-18T11:18:00.0653790Z               "line": 233
2026-06-18T11:18:00.0653866Z             }
2026-06-18T11:18:00.0653954Z           ]
2026-06-18T11:18:00.0654035Z         }
2026-06-18T11:18:00.0654114Z       }
2026-06-18T11:18:00.0654201Z     },
2026-06-18T11:18:00.0654283Z     {
2026-06-18T11:18:00.0654401Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-18T11:18:00.0654556Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-18T11:18:00.0654658Z       "requiredStages": [
2026-06-18T11:18:00.0654744Z         "impl",
2026-06-18T11:18:00.0654824Z         "unit"
2026-06-18T11:18:00.0655001Z       ],
2026-06-18T11:18:00.0655096Z       "stages": {
2026-06-18T11:18:00.0655177Z         "doc": {
2026-06-18T11:18:00.0655274Z           "complete": false,
2026-06-18T11:18:00.0655368Z           "evidence": []
2026-06-18T11:18:00.0655453Z         },
2026-06-18T11:18:00.0655535Z         "impl": {
2026-06-18T11:18:00.0655626Z           "complete": true,
2026-06-18T11:18:00.0655726Z           "evidence": [
2026-06-18T11:18:00.0655816Z             {
2026-06-18T11:18:00.0655932Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T11:18:00.0656026Z               "line": 95
2026-06-18T11:18:00.0656112Z             },
2026-06-18T11:18:00.0656198Z             {
2026-06-18T11:18:00.0656312Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.0656407Z               "line": 117
2026-06-18T11:18:00.0656493Z             }
2026-06-18T11:18:00.0656571Z           ]
2026-06-18T11:18:00.0656655Z         },
2026-06-18T11:18:00.0656735Z         "int": {
2026-06-18T11:18:00.0656845Z           "complete": false,
2026-06-18T11:18:00.0656926Z           "evidence": []
2026-06-18T11:18:00.0657024Z         },
2026-06-18T11:18:00.0657104Z         "unit": {
2026-06-18T11:18:00.0657186Z           "complete": true,
2026-06-18T11:18:00.0657287Z           "evidence": [
2026-06-18T11:18:00.0657372Z             {
2026-06-18T11:18:00.0657496Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T11:18:00.0657592Z               "line": 250
2026-06-18T11:18:00.0657682Z             },
2026-06-18T11:18:00.0657762Z             {
2026-06-18T11:18:00.0657868Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T11:18:00.0657963Z               "line": 412
2026-06-18T11:18:00.0658039Z             },
2026-06-18T11:18:00.0658126Z             {
2026-06-18T11:18:00.0658240Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.0658326Z               "line": 580
2026-06-18T11:18:00.0658416Z             },
2026-06-18T11:18:00.0658498Z             {
2026-06-18T11:18:00.0658621Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.0658702Z               "line": 638
2026-06-18T11:18:00.0658785Z             }
2026-06-18T11:18:00.0658869Z           ]
2026-06-18T11:18:00.0659026Z         }
2026-06-18T11:18:00.0659119Z       }
2026-06-18T11:18:00.0659203Z     },
2026-06-18T11:18:00.0659299Z     {
2026-06-18T11:18:00.0659399Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-18T11:18:00.0659589Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-18T11:18:00.0659693Z       "requiredStages": [
2026-06-18T11:18:00.0659774Z         "impl",
2026-06-18T11:18:00.0659868Z         "unit"
2026-06-18T11:18:00.0659948Z       ],
2026-06-18T11:18:00.0660029Z       "stages": {
2026-06-18T11:18:00.0660116Z         "doc": {
2026-06-18T11:18:00.0660215Z           "complete": false,
2026-06-18T11:18:00.0660296Z           "evidence": []
2026-06-18T11:18:00.0660378Z         },
2026-06-18T11:18:00.0660469Z         "impl": {
2026-06-18T11:18:00.0660568Z           "complete": true,
2026-06-18T11:18:00.0660654Z           "evidence": [
2026-06-18T11:18:00.0660736Z             {
2026-06-18T11:18:00.0660859Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0660954Z               "line": 262
2026-06-18T11:18:00.0661041Z             },
2026-06-18T11:18:00.0661235Z             {
2026-06-18T11:18:00.0661342Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0661436Z               "line": 307
2026-06-18T11:18:00.0661522Z             },
2026-06-18T11:18:00.0661613Z             {
2026-06-18T11:18:00.0661733Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0661821Z               "line": 319
2026-06-18T11:18:00.0661903Z             }
2026-06-18T11:18:00.0661986Z           ]
2026-06-18T11:18:00.0662076Z         },
2026-06-18T11:18:00.0662150Z         "int": {
2026-06-18T11:18:00.0662250Z           "complete": false,
2026-06-18T11:18:00.0662345Z           "evidence": []
2026-06-18T11:18:00.0662534Z         },
2026-06-18T11:18:00.0662625Z         "unit": {
2026-06-18T11:18:00.0662706Z           "complete": true,
2026-06-18T11:18:00.0662796Z           "evidence": [
2026-06-18T11:18:00.0662877Z             {
2026-06-18T11:18:00.0663002Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0663088Z               "line": 455
2026-06-18T11:18:00.0663172Z             },
2026-06-18T11:18:00.0663259Z             {
2026-06-18T11:18:00.0663359Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0663445Z               "line": 499
2026-06-18T11:18:00.0663521Z             }
2026-06-18T11:18:00.0663603Z           ]
2026-06-18T11:18:00.0663688Z         }
2026-06-18T11:18:00.0663769Z       }
2026-06-18T11:18:00.0663845Z     },
2026-06-18T11:18:00.0663927Z     {
2026-06-18T11:18:00.0664026Z       "id": "REQ-HOST-RUN-1",
2026-06-18T11:18:00.0666400Z       "title": "spt-hosted harness bringup: `spt endpoint run` spawns an adapter's `[session.self]` command template into a broker-held PTY (the spawn-session seam, brain.rs spawn_session_pid — same broker path shellhost.rs launch_shell_brokered_in uses for shells, now for kind=\"harness\" self-role), registers the perch under the given endpoint id, returns the id. Reverses today's harness-hosted-only launch (external launcher → `api bind`). Non-interactive flag set (--adapter <a[:profile]> --id <id> --create --resume <session> --attach|--start|--view) covers every terminal action of the W2 interactive picker so shortcuts (cc-<id>) bake fully non-interactive launches; composite adapter:profile resolves via registry::resolve_option leaf-replace overlay.",
2026-06-18T11:18:00.0666506Z       "requiredStages": [
2026-06-18T11:18:00.0666600Z         "impl",
2026-06-18T11:18:00.0666691Z         "unit",
2026-06-18T11:18:00.0666773Z         "int"
2026-06-18T11:18:00.0666854Z       ],
2026-06-18T11:18:00.0666938Z       "stages": {
2026-06-18T11:18:00.0667020Z         "doc": {
2026-06-18T11:18:00.0667117Z           "complete": false,
2026-06-18T11:18:00.0667224Z           "evidence": []
2026-06-18T11:18:00.0667310Z         },
2026-06-18T11:18:00.0667395Z         "impl": {
2026-06-18T11:18:00.0667490Z           "complete": true,
2026-06-18T11:18:00.0667574Z           "evidence": [
2026-06-18T11:18:00.0667664Z             {
2026-06-18T11:18:00.0667794Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-18T11:18:00.0667899Z               "line": 30
2026-06-18T11:18:00.0667979Z             },
2026-06-18T11:18:00.0668066Z             {
2026-06-18T11:18:00.0668185Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-18T11:18:00.0668270Z               "line": 69
2026-06-18T11:18:00.0668357Z             },
2026-06-18T11:18:00.0668438Z             {
2026-06-18T11:18:00.0668566Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-18T11:18:00.0668662Z               "line": 142
2026-06-18T11:18:00.0668743Z             },
2026-06-18T11:18:00.0668838Z             {
2026-06-18T11:18:00.0668933Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0669124Z               "line": 1252
2026-06-18T11:18:00.0669205Z             }
2026-06-18T11:18:00.0669286Z           ]
2026-06-18T11:18:00.0669373Z         },
2026-06-18T11:18:00.0669477Z         "int": {
2026-06-18T11:18:00.0669568Z           "complete": true,
2026-06-18T11:18:00.0669777Z           "evidence": [
2026-06-18T11:18:00.0669859Z             {
2026-06-18T11:18:00.0669984Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T11:18:00.0670073Z               "line": 280
2026-06-18T11:18:00.0670158Z             }
2026-06-18T11:18:00.0670238Z           ]
2026-06-18T11:18:00.0670358Z         },
2026-06-18T11:18:00.0670456Z         "unit": {
2026-06-18T11:18:00.0670560Z           "complete": true,
2026-06-18T11:18:00.0670642Z           "evidence": [
2026-06-18T11:18:00.0670723Z             {
2026-06-18T11:18:00.0670846Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-18T11:18:00.0670933Z               "line": 184
2026-06-18T11:18:00.0671123Z             },
2026-06-18T11:18:00.0671204Z             {
2026-06-18T11:18:00.0671334Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-18T11:18:00.0671433Z               "line": 225
2026-06-18T11:18:00.0671514Z             },
2026-06-18T11:18:00.0671596Z             {
2026-06-18T11:18:00.0671729Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-18T11:18:00.0671829Z               "line": 258
2026-06-18T11:18:00.0674464Z             }
2026-06-18T11:18:00.0674577Z           ]
2026-06-18T11:18:00.0674658Z         }
2026-06-18T11:18:00.0674734Z       }
2026-06-18T11:18:00.0674821Z     },
2026-06-18T11:18:00.0674901Z     {
2026-06-18T11:18:00.0675001Z       "id": "REQ-HOST-RUN-2",
2026-06-18T11:18:00.0676665Z       "title": "Project-scoped working directory for spt-hosted bringup: `spt endpoint run` lands the broker-spawned harness PTY in the user's PROJECT cwd, not the daemon's, via an additive `SpawnReq.cwd` field carried through the broker PTY spawn (portable-pty CommandBuilder cwd). N-1-safe wire change (additive, defaulted). Required because the consumer (Claude Code) is project-scoped: broker-inherited cwd = the daemon's cwd = the wrong `.claude`, wrong session history, wrong digest source; `cc <id>` at a project root MUST land the harness in that project. W1 ships broker-inherited cwd as a bringup-proof shortcut only; this REQ must land before the M12 gate (doyle, 2026-06-14).",
2026-06-18T11:18:00.0676803Z       "requiredStages": [
2026-06-18T11:18:00.0676902Z         "impl",
2026-06-18T11:18:00.0676994Z         "unit",
2026-06-18T11:18:00.0677085Z         "int"
2026-06-18T11:18:00.0677175Z       ],
2026-06-18T11:18:00.0677251Z       "stages": {
2026-06-18T11:18:00.0677333Z         "doc": {
2026-06-18T11:18:00.0677428Z           "complete": false,
2026-06-18T11:18:00.0677513Z           "evidence": []
2026-06-18T11:18:00.0677590Z         },
2026-06-18T11:18:00.0677686Z         "impl": {
2026-06-18T11:18:00.0677784Z           "complete": true,
2026-06-18T11:18:00.0677875Z           "evidence": [
2026-06-18T11:18:00.0677960Z             {
2026-06-18T11:18:00.0678097Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-18T11:18:00.0678192Z               "line": 143
2026-06-18T11:18:00.0678273Z             },
2026-06-18T11:18:00.0678354Z             {
2026-06-18T11:18:00.0678483Z               "path": "crates/spt-term/src/pty.rs",
2026-06-18T11:18:00.0678568Z               "line": 113
2026-06-18T11:18:00.0678660Z             }
2026-06-18T11:18:00.0678736Z           ]
2026-06-18T11:18:00.0678816Z         },
2026-06-18T11:18:00.0678897Z         "int": {
2026-06-18T11:18:00.0679079Z           "complete": true,
2026-06-18T11:18:00.0679169Z           "evidence": [
2026-06-18T11:18:00.0679251Z             {
2026-06-18T11:18:00.0679399Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T11:18:00.0679493Z               "line": 455
2026-06-18T11:18:00.0679580Z             }
2026-06-18T11:18:00.0679665Z           ]
2026-06-18T11:18:00.0679755Z         },
2026-06-18T11:18:00.0679846Z         "unit": {
2026-06-18T11:18:00.0679929Z           "complete": true,
2026-06-18T11:18:00.0680027Z           "evidence": [
2026-06-18T11:18:00.0680108Z             {
2026-06-18T11:18:00.0680234Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-18T11:18:00.0680462Z               "line": 86
2026-06-18T11:18:00.0680539Z             }
2026-06-18T11:18:00.0680619Z           ]
2026-06-18T11:18:00.0680704Z         }
2026-06-18T11:18:00.0680779Z       }
2026-06-18T11:18:00.0680866Z     },
2026-06-18T11:18:00.0680950Z     {
2026-06-18T11:18:00.0681050Z       "id": "REQ-INFRA-1",
2026-06-18T11:18:00.0681236Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-18T11:18:00.0681335Z       "requiredStages": [],
2026-06-18T11:18:00.0681420Z       "stages": {
2026-06-18T11:18:00.0681503Z         "doc": {
2026-06-18T11:18:00.0681598Z           "complete": false,
2026-06-18T11:18:00.0681688Z           "evidence": []
2026-06-18T11:18:00.0681889Z         },
2026-06-18T11:18:00.0681970Z         "impl": {
2026-06-18T11:18:00.0682064Z           "complete": false,
2026-06-18T11:18:00.0682147Z           "evidence": []
2026-06-18T11:18:00.0682232Z         },
2026-06-18T11:18:00.0682313Z         "int": {
2026-06-18T11:18:00.0682413Z           "complete": false,
2026-06-18T11:18:00.0682509Z           "evidence": []
2026-06-18T11:18:00.0682594Z         },
2026-06-18T11:18:00.0682690Z         "unit": {
2026-06-18T11:18:00.0682777Z           "complete": false,
2026-06-18T11:18:00.0682867Z           "evidence": []
2026-06-18T11:18:00.0682942Z         }
2026-06-18T11:18:00.0683028Z       }
2026-06-18T11:18:00.0683111Z     },
2026-06-18T11:18:00.0683191Z     {
2026-06-18T11:18:00.0683285Z       "id": "REQ-INST-1",
2026-06-18T11:18:00.0683451Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-18T11:18:00.0683550Z       "requiredStages": [],
2026-06-18T11:18:00.0683634Z       "stages": {
2026-06-18T11:18:00.0683726Z         "doc": {
2026-06-18T11:18:00.0683822Z           "complete": false,
2026-06-18T11:18:00.0683917Z           "evidence": []
2026-06-18T11:18:00.0683992Z         },
2026-06-18T11:18:00.0684079Z         "impl": {
2026-06-18T11:18:00.0684169Z           "complete": false,
2026-06-18T11:18:00.0684255Z           "evidence": []
2026-06-18T11:18:00.0684341Z         },
2026-06-18T11:18:00.0684413Z         "int": {
2026-06-18T11:18:00.0684503Z           "complete": false,
2026-06-18T11:18:00.0684602Z           "evidence": []
2026-06-18T11:18:00.0684680Z         },
2026-06-18T11:18:00.0684761Z         "unit": {
2026-06-18T11:18:00.0684856Z           "complete": false,
2026-06-18T11:18:00.0684951Z           "evidence": []
2026-06-18T11:18:00.0685029Z         }
2026-06-18T11:18:00.0685119Z       }
2026-06-18T11:18:00.0685195Z     },
2026-06-18T11:18:00.0685280Z     {
2026-06-18T11:18:00.0685376Z       "id": "REQ-INST-10",
2026-06-18T11:18:00.0685585Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-18T11:18:00.0685691Z       "requiredStages": [
2026-06-18T11:18:00.0685776Z         "impl",
2026-06-18T11:18:00.0685867Z         "unit"
2026-06-18T11:18:00.0685963Z       ],
2026-06-18T11:18:00.0686049Z       "stages": {
2026-06-18T11:18:00.0686133Z         "doc": {
2026-06-18T11:18:00.0686233Z           "complete": false,
2026-06-18T11:18:00.0686314Z           "evidence": []
2026-06-18T11:18:00.0686396Z         },
2026-06-18T11:18:00.0686481Z         "impl": {
2026-06-18T11:18:00.0686571Z           "complete": true,
2026-06-18T11:18:00.0686663Z           "evidence": [
2026-06-18T11:18:00.0686744Z             {
2026-06-18T11:18:00.0686871Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0686963Z               "line": 648
2026-06-18T11:18:00.0687053Z             },
2026-06-18T11:18:00.0687143Z             {
2026-06-18T11:18:00.0687254Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0687349Z               "line": 725
2026-06-18T11:18:00.0687430Z             },
2026-06-18T11:18:00.0687515Z             {
2026-06-18T11:18:00.0687631Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-18T11:18:00.0687715Z               "line": 13
2026-06-18T11:18:00.0687796Z             },
2026-06-18T11:18:00.0687884Z             {
2026-06-18T11:18:00.0688078Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-18T11:18:00.0688169Z               "line": 67
2026-06-18T11:18:00.0688256Z             },
2026-06-18T11:18:00.0688331Z             {
2026-06-18T11:18:00.0688440Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T11:18:00.0688526Z               "line": 18
2026-06-18T11:18:00.0688616Z             },
2026-06-18T11:18:00.0688690Z             {
2026-06-18T11:18:00.0688794Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T11:18:00.0688876Z               "line": 444
2026-06-18T11:18:00.0689043Z             }
2026-06-18T11:18:00.0689123Z           ]
2026-06-18T11:18:00.0689311Z         },
2026-06-18T11:18:00.0689410Z         "int": {
2026-06-18T11:18:00.0689506Z           "complete": false,
2026-06-18T11:18:00.0689596Z           "evidence": []
2026-06-18T11:18:00.0689672Z         },
2026-06-18T11:18:00.0689753Z         "unit": {
2026-06-18T11:18:00.0689840Z           "complete": true,
2026-06-18T11:18:00.0689939Z           "evidence": [
2026-06-18T11:18:00.0690015Z             {
2026-06-18T11:18:00.0690140Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0690235Z               "line": 932
2026-06-18T11:18:00.0690316Z             },
2026-06-18T11:18:00.0690406Z             {
2026-06-18T11:18:00.0690522Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0690621Z               "line": 1309
2026-06-18T11:18:00.0690697Z             },
2026-06-18T11:18:00.0690775Z             {
2026-06-18T11:18:00.0690897Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0690979Z               "line": 1320
2026-06-18T11:18:00.0691075Z             },
2026-06-18T11:18:00.0691152Z             {
2026-06-18T11:18:00.0691273Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0691363Z               "line": 1336
2026-06-18T11:18:00.0691445Z             },
2026-06-18T11:18:00.0691525Z             {
2026-06-18T11:18:00.0691647Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0691733Z               "line": 1352
2026-06-18T11:18:00.0691815Z             },
2026-06-18T11:18:00.0691900Z             {
2026-06-18T11:18:00.0692019Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0692106Z               "line": 1374
2026-06-18T11:18:00.0692192Z             },
2026-06-18T11:18:00.0692272Z             {
2026-06-18T11:18:00.0692388Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0692478Z               "line": 1679
2026-06-18T11:18:00.0692563Z             },
2026-06-18T11:18:00.0692649Z             {
2026-06-18T11:18:00.0692773Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-18T11:18:00.0692854Z               "line": 130
2026-06-18T11:18:00.0692935Z             },
2026-06-18T11:18:00.0693027Z             {
2026-06-18T11:18:00.0693145Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-18T11:18:00.0693226Z               "line": 167
2026-06-18T11:18:00.0693322Z             },
2026-06-18T11:18:00.0693403Z             {
2026-06-18T11:18:00.0693516Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-18T11:18:00.0693608Z               "line": 175
2026-06-18T11:18:00.0693695Z             },
2026-06-18T11:18:00.0693774Z             {
2026-06-18T11:18:00.0693883Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-18T11:18:00.0693978Z               "line": 183
2026-06-18T11:18:00.0694063Z             },
2026-06-18T11:18:00.0694148Z             {
2026-06-18T11:18:00.0694247Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T11:18:00.0694334Z               "line": 896
2026-06-18T11:18:00.0694420Z             }
2026-06-18T11:18:00.0694500Z           ]
2026-06-18T11:18:00.0694586Z         }
2026-06-18T11:18:00.0694668Z       }
2026-06-18T11:18:00.0694744Z     },
2026-06-18T11:18:00.0694829Z     {
2026-06-18T11:18:00.0694920Z       "id": "REQ-INST-11",
2026-06-18T11:18:00.0695130Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-18T11:18:00.0695321Z       "requiredStages": [
2026-06-18T11:18:00.0695406Z         "impl",
2026-06-18T11:18:00.0695487Z         "unit"
2026-06-18T11:18:00.0695579Z       ],
2026-06-18T11:18:00.0695650Z       "stages": {
2026-06-18T11:18:00.0695736Z         "doc": {
2026-06-18T11:18:00.0695831Z           "complete": false,
2026-06-18T11:18:00.0695922Z           "evidence": []
2026-06-18T11:18:00.0696002Z         },
2026-06-18T11:18:00.0696089Z         "impl": {
2026-06-18T11:18:00.0696184Z           "complete": true,
2026-06-18T11:18:00.0696275Z           "evidence": [
2026-06-18T11:18:00.0696437Z             {
2026-06-18T11:18:00.0696557Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0696637Z               "line": 514
2026-06-18T11:18:00.0696717Z             },
2026-06-18T11:18:00.0696807Z             {
2026-06-18T11:18:00.0696932Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.0697027Z               "line": 297
2026-06-18T11:18:00.0697117Z             },
2026-06-18T11:18:00.0697194Z             {
2026-06-18T11:18:00.0697304Z               "path": "crates/spt-store/src/rename.rs",
2026-06-18T11:18:00.0697393Z               "line": 59
2026-06-18T11:18:00.0697470Z             },
2026-06-18T11:18:00.0697557Z             {
2026-06-18T11:18:00.0697661Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0697761Z               "line": 5130
2026-06-18T11:18:00.0697847Z             },
2026-06-18T11:18:00.0697928Z             {
2026-06-18T11:18:00.0698028Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0698119Z               "line": 6976
2026-06-18T11:18:00.0698196Z             }
2026-06-18T11:18:00.0698280Z           ]
2026-06-18T11:18:00.0698361Z         },
2026-06-18T11:18:00.0698444Z         "int": {
2026-06-18T11:18:00.0698539Z           "complete": false,
2026-06-18T11:18:00.0698633Z           "evidence": []
2026-06-18T11:18:00.0698715Z         },
2026-06-18T11:18:00.0698806Z         "unit": {
2026-06-18T11:18:00.0698896Z           "complete": true,
2026-06-18T11:18:00.0699056Z           "evidence": [
2026-06-18T11:18:00.0699138Z             {
2026-06-18T11:18:00.0699264Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0699355Z               "line": 1479
2026-06-18T11:18:00.0699431Z             },
2026-06-18T11:18:00.0699518Z             {
2026-06-18T11:18:00.0699631Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0699722Z               "line": 1512
2026-06-18T11:18:00.0699808Z             },
2026-06-18T11:18:00.0699885Z             {
2026-06-18T11:18:00.0700017Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.0700109Z               "line": 527
2026-06-18T11:18:00.0700200Z             },
2026-06-18T11:18:00.0700284Z             {
2026-06-18T11:18:00.0700395Z               "path": "crates/spt-store/src/rename.rs",
2026-06-18T11:18:00.0700495Z               "line": 160
2026-06-18T11:18:00.0700575Z             },
2026-06-18T11:18:00.0700656Z             {
2026-06-18T11:18:00.0700767Z               "path": "crates/spt-store/src/rename.rs",
2026-06-18T11:18:00.0700858Z               "line": 190
2026-06-18T11:18:00.0700933Z             },
2026-06-18T11:18:00.0701020Z             {
2026-06-18T11:18:00.0701129Z               "path": "crates/spt-store/src/rename.rs",
2026-06-18T11:18:00.0701214Z               "line": 225
2026-06-18T11:18:00.0701296Z             },
2026-06-18T11:18:00.0701378Z             {
2026-06-18T11:18:00.0701481Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0701567Z               "line": 7816
2026-06-18T11:18:00.0701664Z             }
2026-06-18T11:18:00.0701749Z           ]
2026-06-18T11:18:00.0701833Z         }
2026-06-18T11:18:00.0701918Z       }
2026-06-18T11:18:00.0702000Z     },
2026-06-18T11:18:00.0702080Z     {
2026-06-18T11:18:00.0702174Z       "id": "REQ-INST-12",
2026-06-18T11:18:00.0702460Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-18T11:18:00.0702680Z       "requiredStages": [
2026-06-18T11:18:00.0702757Z         "impl",
2026-06-18T11:18:00.0702846Z         "unit"
2026-06-18T11:18:00.0702928Z       ],
2026-06-18T11:18:00.0703009Z       "stages": {
2026-06-18T11:18:00.0703095Z         "doc": {
2026-06-18T11:18:00.0703180Z           "complete": false,
2026-06-18T11:18:00.0703282Z           "evidence": []
2026-06-18T11:18:00.0703361Z         },
2026-06-18T11:18:00.0703442Z         "impl": {
2026-06-18T11:18:00.0703533Z           "complete": true,
2026-06-18T11:18:00.0703620Z           "evidence": [
2026-06-18T11:18:00.0703795Z             {
2026-06-18T11:18:00.0703926Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0704015Z               "line": 566
2026-06-18T11:18:00.0704101Z             },
2026-06-18T11:18:00.0704192Z             {
2026-06-18T11:18:00.0704311Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0704405Z               "line": 659
2026-06-18T11:18:00.0704495Z             },
2026-06-18T11:18:00.0704577Z             {
2026-06-18T11:18:00.0704698Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0704783Z               "line": 739
2026-06-18T11:18:00.0704865Z             },
2026-06-18T11:18:00.0704952Z             {
2026-06-18T11:18:00.0705060Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T11:18:00.0705151Z               "line": 96
2026-06-18T11:18:00.0705233Z             },
2026-06-18T11:18:00.0705319Z             {
2026-06-18T11:18:00.0705432Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T11:18:00.0705529Z               "line": 269
2026-06-18T11:18:00.0705609Z             },
2026-06-18T11:18:00.0705685Z             {
2026-06-18T11:18:00.0705810Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-18T11:18:00.0705895Z               "line": 148
2026-06-18T11:18:00.0705981Z             }
2026-06-18T11:18:00.0706066Z           ]
2026-06-18T11:18:00.0706154Z         },
2026-06-18T11:18:00.0706234Z         "int": {
2026-06-18T11:18:00.0706324Z           "complete": false,
2026-06-18T11:18:00.0706420Z           "evidence": []
2026-06-18T11:18:00.0706501Z         },
2026-06-18T11:18:00.0706596Z         "unit": {
2026-06-18T11:18:00.0706682Z           "complete": true,
2026-06-18T11:18:00.0706769Z           "evidence": [
2026-06-18T11:18:00.0706854Z             {
2026-06-18T11:18:00.0706973Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0707069Z               "line": 1554
2026-06-18T11:18:00.0707155Z             },
2026-06-18T11:18:00.0707253Z             {
2026-06-18T11:18:00.0707367Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0707458Z               "line": 1577
2026-06-18T11:18:00.0707531Z             },
2026-06-18T11:18:00.0707629Z             {
2026-06-18T11:18:00.0707740Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0707835Z               "line": 1614
2026-06-18T11:18:00.0707930Z             },
2026-06-18T11:18:00.0708006Z             {
2026-06-18T11:18:00.0708122Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T11:18:00.0708198Z               "line": 457
2026-06-18T11:18:00.0708292Z             },
2026-06-18T11:18:00.0708384Z             {
2026-06-18T11:18:00.0708498Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-18T11:18:00.0708593Z               "line": 185
2026-06-18T11:18:00.0708674Z             },
2026-06-18T11:18:00.0708751Z             {
2026-06-18T11:18:00.0708865Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-18T11:18:00.0709037Z               "line": 206
2026-06-18T11:18:00.0709123Z             },
2026-06-18T11:18:00.0709198Z             {
2026-06-18T11:18:00.0709328Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-18T11:18:00.0709418Z               "line": 232
2026-06-18T11:18:00.0709626Z             }
2026-06-18T11:18:00.0709707Z           ]
2026-06-18T11:18:00.0709792Z         }
2026-06-18T11:18:00.0709886Z       }
2026-06-18T11:18:00.0709968Z     },
2026-06-18T11:18:00.0710054Z     {
2026-06-18T11:18:00.0710140Z       "id": "REQ-INST-13",
2026-06-18T11:18:00.0710320Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-18T11:18:00.0710411Z       "requiredStages": [
2026-06-18T11:18:00.0710496Z         "impl",
2026-06-18T11:18:00.0710582Z         "unit"
2026-06-18T11:18:00.0710665Z       ],
2026-06-18T11:18:00.0710755Z       "stages": {
2026-06-18T11:18:00.0710830Z         "doc": {
2026-06-18T11:18:00.0711041Z           "complete": false,
2026-06-18T11:18:00.0711135Z           "evidence": []
2026-06-18T11:18:00.0711231Z         },
2026-06-18T11:18:00.0711323Z         "impl": {
2026-06-18T11:18:00.0711408Z           "complete": true,
2026-06-18T11:18:00.0711503Z           "evidence": [
2026-06-18T11:18:00.0711580Z             {
2026-06-18T11:18:00.0711703Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T11:18:00.0711789Z               "line": 100
2026-06-18T11:18:00.0711876Z             },
2026-06-18T11:18:00.0711971Z             {
2026-06-18T11:18:00.0712080Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-18T11:18:00.0712176Z               "line": 171
2026-06-18T11:18:00.0712262Z             }
2026-06-18T11:18:00.0712347Z           ]
2026-06-18T11:18:00.0712432Z         },
2026-06-18T11:18:00.0712513Z         "int": {
2026-06-18T11:18:00.0712613Z           "complete": false,
2026-06-18T11:18:00.0712701Z           "evidence": []
2026-06-18T11:18:00.0712782Z         },
2026-06-18T11:18:00.0712878Z         "unit": {
2026-06-18T11:18:00.0712964Z           "complete": true,
2026-06-18T11:18:00.0713053Z           "evidence": [
2026-06-18T11:18:00.0713144Z             {
2026-06-18T11:18:00.0713273Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-18T11:18:00.0713363Z               "line": 261
2026-06-18T11:18:00.0713449Z             },
2026-06-18T11:18:00.0713532Z             {
2026-06-18T11:18:00.0713655Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-18T11:18:00.0713745Z               "line": 279
2026-06-18T11:18:00.0713827Z             }
2026-06-18T11:18:00.0713917Z           ]
2026-06-18T11:18:00.0713998Z         }
2026-06-18T11:18:00.0714084Z       }
2026-06-18T11:18:00.0714166Z     },
2026-06-18T11:18:00.0714255Z     {
2026-06-18T11:18:00.0714346Z       "id": "REQ-INST-14",
2026-06-18T11:18:00.0714713Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-18T11:18:00.0714820Z       "requiredStages": [
2026-06-18T11:18:00.0714908Z         "doc",
2026-06-18T11:18:00.0715003Z         "impl",
2026-06-18T11:18:00.0715079Z         "unit"
2026-06-18T11:18:00.0715165Z       ],
2026-06-18T11:18:00.0715258Z       "stages": {
2026-06-18T11:18:00.0715343Z         "doc": {
2026-06-18T11:18:00.0715449Z           "complete": true,
2026-06-18T11:18:00.0715536Z           "evidence": [
2026-06-18T11:18:00.0715620Z             {
2026-06-18T11:18:00.0715721Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.0715817Z               "line": 570
2026-06-18T11:18:00.0715897Z             },
2026-06-18T11:18:00.0715983Z             {
2026-06-18T11:18:00.0716089Z               "path": "docs/STORAGE.md",
2026-06-18T11:18:00.0716174Z               "line": 49
2026-06-18T11:18:00.0716264Z             }
2026-06-18T11:18:00.0716355Z           ]
2026-06-18T11:18:00.0716441Z         },
2026-06-18T11:18:00.0716527Z         "impl": {
2026-06-18T11:18:00.0716622Z           "complete": true,
2026-06-18T11:18:00.0716724Z           "evidence": [
2026-06-18T11:18:00.0716808Z             {
2026-06-18T11:18:00.0716946Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.0717024Z               "line": 410
2026-06-18T11:18:00.0717108Z             },
2026-06-18T11:18:00.0717185Z             {
2026-06-18T11:18:00.0717386Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0717485Z               "line": 367
2026-06-18T11:18:00.0717566Z             },
2026-06-18T11:18:00.0717643Z             {
2026-06-18T11:18:00.0717752Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:18:00.0717842Z               "line": 281
2026-06-18T11:18:00.0717927Z             },
2026-06-18T11:18:00.0718009Z             {
2026-06-18T11:18:00.0718109Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0718199Z               "line": 1465
2026-06-18T11:18:00.0718285Z             }
2026-06-18T11:18:00.0718367Z           ]
2026-06-18T11:18:00.0718523Z         },
2026-06-18T11:18:00.0718615Z         "int": {
2026-06-18T11:18:00.0718715Z           "complete": false,
2026-06-18T11:18:00.0718814Z           "evidence": []
2026-06-18T11:18:00.0718896Z         },
2026-06-18T11:18:00.0719072Z         "unit": {
2026-06-18T11:18:00.0719162Z           "complete": true,
2026-06-18T11:18:00.0719264Z           "evidence": [
2026-06-18T11:18:00.0719354Z             {
2026-06-18T11:18:00.0719487Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.0719584Z               "line": 1163
2026-06-18T11:18:00.0719664Z             },
2026-06-18T11:18:00.0719753Z             {
2026-06-18T11:18:00.0719878Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0719978Z               "line": 944
2026-06-18T11:18:00.0720068Z             },
2026-06-18T11:18:00.0720144Z             {
2026-06-18T11:18:00.0720258Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0720352Z               "line": 1205
2026-06-18T11:18:00.0720446Z             },
2026-06-18T11:18:00.0720528Z             {
2026-06-18T11:18:00.0720648Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:18:00.0720742Z               "line": 633
2026-06-18T11:18:00.0720818Z             },
2026-06-18T11:18:00.0720900Z             {
2026-06-18T11:18:00.0721009Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0721109Z               "line": 7892
2026-06-18T11:18:00.0721191Z             }
2026-06-18T11:18:00.0721277Z           ]
2026-06-18T11:18:00.0721357Z         }
2026-06-18T11:18:00.0721443Z       }
2026-06-18T11:18:00.0721525Z     },
2026-06-18T11:18:00.0721601Z     {
2026-06-18T11:18:00.0721691Z       "id": "REQ-INST-15",
2026-06-18T11:18:00.0722372Z       "title": "Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)",
2026-06-18T11:18:00.0722493Z       "requiredStages": [
2026-06-18T11:18:00.0722583Z         "doc",
2026-06-18T11:18:00.0722669Z         "impl",
2026-06-18T11:18:00.0722760Z         "unit"
2026-06-18T11:18:00.0722842Z       ],
2026-06-18T11:18:00.0722939Z       "stages": {
2026-06-18T11:18:00.0723020Z         "doc": {
2026-06-18T11:18:00.0723120Z           "complete": true,
2026-06-18T11:18:00.0723215Z           "evidence": [
2026-06-18T11:18:00.0723294Z             {
2026-06-18T11:18:00.0723472Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-18T11:18:00.0723553Z               "line": 3
2026-06-18T11:18:00.0723652Z             }
2026-06-18T11:18:00.0723738Z           ]
2026-06-18T11:18:00.0723815Z         },
2026-06-18T11:18:00.0723914Z         "impl": {
2026-06-18T11:18:00.0724009Z           "complete": true,
2026-06-18T11:18:00.0724106Z           "evidence": [
2026-06-18T11:18:00.0724192Z             {
2026-06-18T11:18:00.0724324Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.0724421Z               "line": 353
2026-06-18T11:18:00.0724505Z             },
2026-06-18T11:18:00.0724591Z             {
2026-06-18T11:18:00.0724702Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T11:18:00.0724792Z               "line": 60
2026-06-18T11:18:00.0724983Z             },
2026-06-18T11:18:00.0725065Z             {
2026-06-18T11:18:00.0725202Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.0725283Z               "line": 368
2026-06-18T11:18:00.0725365Z             },
2026-06-18T11:18:00.0725450Z             {
2026-06-18T11:18:00.0725568Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.0725649Z               "line": 417
2026-06-18T11:18:00.0725735Z             },
2026-06-18T11:18:00.0725818Z             {
2026-06-18T11:18:00.0725927Z               "path": "crates/spt-store/src/home.rs",
2026-06-18T11:18:00.0726024Z               "line": 19
2026-06-18T11:18:00.0726200Z             },
2026-06-18T11:18:00.0726291Z             {
2026-06-18T11:18:00.0726405Z               "path": "crates/spt-store/src/home.rs",
2026-06-18T11:18:00.0726495Z               "line": 70
2026-06-18T11:18:00.0726586Z             },
2026-06-18T11:18:00.0726673Z             {
2026-06-18T11:18:00.0726796Z               "path": "crates/spt-store/src/home.rs",
2026-06-18T11:18:00.0726881Z               "line": 96
2026-06-18T11:18:00.0726964Z             },
2026-06-18T11:18:00.0727039Z             {
2026-06-18T11:18:00.0727153Z               "path": "crates/spt-store/src/home.rs",
2026-06-18T11:18:00.0727240Z               "line": 121
2026-06-18T11:18:00.0727321Z             },
2026-06-18T11:18:00.0727411Z             {
2026-06-18T11:18:00.0727520Z               "path": "crates/spt-store/src/home.rs",
2026-06-18T11:18:00.0727608Z               "line": 172
2026-06-18T11:18:00.0727687Z             },
2026-06-18T11:18:00.0727769Z             {
2026-06-18T11:18:00.0727889Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.0727983Z               "line": 174
2026-06-18T11:18:00.0728069Z             },
2026-06-18T11:18:00.0728155Z             {
2026-06-18T11:18:00.0728261Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0728345Z               "line": 1357
2026-06-18T11:18:00.0728435Z             }
2026-06-18T11:18:00.0728525Z           ]
2026-06-18T11:18:00.0728608Z         },
2026-06-18T11:18:00.0728688Z         "int": {
2026-06-18T11:18:00.0728787Z           "complete": false,
2026-06-18T11:18:00.0728879Z           "evidence": []
2026-06-18T11:18:00.0729045Z         },
2026-06-18T11:18:00.0729126Z         "unit": {
2026-06-18T11:18:00.0729227Z           "complete": true,
2026-06-18T11:18:00.0729313Z           "evidence": [
2026-06-18T11:18:00.0729408Z             {
2026-06-18T11:18:00.0729533Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.0729627Z               "line": 577
2026-06-18T11:18:00.0729718Z             },
2026-06-18T11:18:00.0729809Z             {
2026-06-18T11:18:00.0729942Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.0730028Z               "line": 638
2026-06-18T11:18:00.0730109Z             },
2026-06-18T11:18:00.0730195Z             {
2026-06-18T11:18:00.0730309Z               "path": "crates/spt-store/src/home.rs",
2026-06-18T11:18:00.0730400Z               "line": 213
2026-06-18T11:18:00.0730482Z             },
2026-06-18T11:18:00.0730566Z             {
2026-06-18T11:18:00.0730670Z               "path": "crates/spt-store/src/home.rs",
2026-06-18T11:18:00.0730756Z               "line": 249
2026-06-18T11:18:00.0730842Z             },
2026-06-18T11:18:00.0730931Z             {
2026-06-18T11:18:00.0731044Z               "path": "crates/spt-store/src/home.rs",
2026-06-18T11:18:00.0731131Z               "line": 262
2026-06-18T11:18:00.0731218Z             },
2026-06-18T11:18:00.0731293Z             {
2026-06-18T11:18:00.0731402Z               "path": "crates/spt-store/src/home.rs",
2026-06-18T11:18:00.0731489Z               "line": 338
2026-06-18T11:18:00.0731584Z             },
2026-06-18T11:18:00.0731669Z             {
2026-06-18T11:18:00.0731785Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.0731875Z               "line": 659
2026-06-18T11:18:00.0731964Z             },
2026-06-18T11:18:00.0732156Z             {
2026-06-18T11:18:00.0732256Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0732356Z               "line": 7829
2026-06-18T11:18:00.0732438Z             },
2026-06-18T11:18:00.0732523Z             {
2026-06-18T11:18:00.0732637Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0732719Z               "line": 9607
2026-06-18T11:18:00.0732804Z             }
2026-06-18T11:18:00.0732886Z           ]
2026-06-18T11:18:00.0732977Z         }
2026-06-18T11:18:00.0733063Z       }
2026-06-18T11:18:00.0733152Z     },
2026-06-18T11:18:00.0733234Z     {
2026-06-18T11:18:00.0733330Z       "id": "REQ-INST-2",
2026-06-18T11:18:00.0733557Z       "title": "Per-node files, synced Psyche mind",
2026-06-18T11:18:00.0733657Z       "requiredStages": [
2026-06-18T11:18:00.0733737Z         "impl",
2026-06-18T11:18:00.0733836Z         "unit"
2026-06-18T11:18:00.0733912Z       ],
2026-06-18T11:18:00.0733993Z       "stages": {
2026-06-18T11:18:00.0734079Z         "doc": {
2026-06-18T11:18:00.0734178Z           "complete": false,
2026-06-18T11:18:00.0734264Z           "evidence": []
2026-06-18T11:18:00.0734352Z         },
2026-06-18T11:18:00.0734433Z         "impl": {
2026-06-18T11:18:00.0734517Z           "complete": true,
2026-06-18T11:18:00.0734609Z           "evidence": [
2026-06-18T11:18:00.0734690Z             {
2026-06-18T11:18:00.0734818Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.0734899Z               "line": 108
2026-06-18T11:18:00.0734986Z             },
2026-06-18T11:18:00.0735075Z             {
2026-06-18T11:18:00.0735190Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-18T11:18:00.0735291Z               "line": 28
2026-06-18T11:18:00.0735376Z             },
2026-06-18T11:18:00.0735466Z             {
2026-06-18T11:18:00.0735573Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-18T11:18:00.0735658Z               "line": 74
2026-06-18T11:18:00.0735752Z             },
2026-06-18T11:18:00.0735839Z             {
2026-06-18T11:18:00.0735959Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-18T11:18:00.0736052Z               "line": 96
2026-06-18T11:18:00.0736142Z             },
2026-06-18T11:18:00.0736228Z             {
2026-06-18T11:18:00.0736341Z               "path": "crates/spt-live/src/resume.rs",
2026-06-18T11:18:00.0736435Z               "line": 86
2026-06-18T11:18:00.0736517Z             },
2026-06-18T11:18:00.0736608Z             {
2026-06-18T11:18:00.0736722Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-18T11:18:00.0736817Z               "line": 118
2026-06-18T11:18:00.0736904Z             }
2026-06-18T11:18:00.0737004Z           ]
2026-06-18T11:18:00.0737084Z         },
2026-06-18T11:18:00.0737166Z         "int": {
2026-06-18T11:18:00.0737261Z           "complete": false,
2026-06-18T11:18:00.0737351Z           "evidence": []
2026-06-18T11:18:00.0737437Z         },
2026-06-18T11:18:00.0737519Z         "unit": {
2026-06-18T11:18:00.0737608Z           "complete": true,
2026-06-18T11:18:00.0737699Z           "evidence": [
2026-06-18T11:18:00.0737780Z             {
2026-06-18T11:18:00.0737905Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-18T11:18:00.0737986Z               "line": 250
2026-06-18T11:18:00.0738071Z             },
2026-06-18T11:18:00.0738158Z             {
2026-06-18T11:18:00.0738271Z               "path": "crates/spt-live/src/resume.rs",
2026-06-18T11:18:00.0738357Z               "line": 280
2026-06-18T11:18:00.0738435Z             }
2026-06-18T11:18:00.0738530Z           ]
2026-06-18T11:18:00.0738609Z         }
2026-06-18T11:18:00.0738691Z       }
2026-06-18T11:18:00.0738778Z     },
2026-06-18T11:18:00.0738868Z     {
2026-06-18T11:18:00.0739005Z       "id": "REQ-INST-3",
2026-06-18T11:18:00.0739153Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-18T11:18:00.0741700Z       "requiredStages": [
2026-06-18T11:18:00.0741805Z         "doc",
2026-06-18T11:18:00.0741900Z         "impl",
2026-06-18T11:18:00.0742134Z         "unit"
2026-06-18T11:18:00.0742219Z       ],
2026-06-18T11:18:00.0742312Z       "stages": {
2026-06-18T11:18:00.0742397Z         "doc": {
2026-06-18T11:18:00.0742496Z           "complete": true,
2026-06-18T11:18:00.0742592Z           "evidence": [
2026-06-18T11:18:00.0742674Z             {
2026-06-18T11:18:00.0742792Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-18T11:18:00.0742888Z               "line": 3
2026-06-18T11:18:00.0742974Z             }
2026-06-18T11:18:00.0743059Z           ]
2026-06-18T11:18:00.0743140Z         },
2026-06-18T11:18:00.0743222Z         "impl": {
2026-06-18T11:18:00.0743308Z           "complete": true,
2026-06-18T11:18:00.0743502Z           "evidence": [
2026-06-18T11:18:00.0743595Z             {
2026-06-18T11:18:00.0743722Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-18T11:18:00.0743808Z               "line": 59
2026-06-18T11:18:00.0743895Z             },
2026-06-18T11:18:00.0743971Z             {
2026-06-18T11:18:00.0744102Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T11:18:00.0744207Z               "line": 480
2026-06-18T11:18:00.0744307Z             },
2026-06-18T11:18:00.0744382Z             {
2026-06-18T11:18:00.0744520Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.0744616Z               "line": 254
2026-06-18T11:18:00.0744706Z             },
2026-06-18T11:18:00.0744781Z             {
2026-06-18T11:18:00.0744902Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.0744997Z               "line": 384
2026-06-18T11:18:00.0745086Z             },
2026-06-18T11:18:00.0745164Z             {
2026-06-18T11:18:00.0745288Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.0745373Z               "line": 418
2026-06-18T11:18:00.0745454Z             },
2026-06-18T11:18:00.0745536Z             {
2026-06-18T11:18:00.0745660Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-18T11:18:00.0745764Z               "line": 74
2026-06-18T11:18:00.0745851Z             },
2026-06-18T11:18:00.0745936Z             {
2026-06-18T11:18:00.0746065Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.0746161Z               "line": 234
2026-06-18T11:18:00.0746246Z             },
2026-06-18T11:18:00.0746327Z             {
2026-06-18T11:18:00.0746462Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.0746552Z               "line": 396
2026-06-18T11:18:00.0746640Z             },
2026-06-18T11:18:00.0746726Z             {
2026-06-18T11:18:00.0746850Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0746953Z               "line": 45
2026-06-18T11:18:00.0747043Z             },
2026-06-18T11:18:00.0747125Z             {
2026-06-18T11:18:00.0747235Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0747324Z               "line": 114
2026-06-18T11:18:00.0747406Z             },
2026-06-18T11:18:00.0747497Z             {
2026-06-18T11:18:00.0747625Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0747711Z               "line": 152
2026-06-18T11:18:00.0747793Z             },
2026-06-18T11:18:00.0747869Z             {
2026-06-18T11:18:00.0747992Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0748084Z               "line": 168
2026-06-18T11:18:00.0748169Z             },
2026-06-18T11:18:00.0748250Z             {
2026-06-18T11:18:00.0748370Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0748456Z               "line": 178
2026-06-18T11:18:00.0748532Z             },
2026-06-18T11:18:00.0748612Z             {
2026-06-18T11:18:00.0748723Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0748817Z               "line": 210
2026-06-18T11:18:00.0748898Z             },
2026-06-18T11:18:00.0749062Z             {
2026-06-18T11:18:00.0749184Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0749372Z               "line": 287
2026-06-18T11:18:00.0749456Z             },
2026-06-18T11:18:00.0749541Z             {
2026-06-18T11:18:00.0749660Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0749757Z               "line": 311
2026-06-18T11:18:00.0749841Z             },
2026-06-18T11:18:00.0749927Z             {
2026-06-18T11:18:00.0750042Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0750133Z               "line": 389
2026-06-18T11:18:00.0750213Z             },
2026-06-18T11:18:00.0750305Z             {
2026-06-18T11:18:00.0750414Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0750600Z               "line": 438
2026-06-18T11:18:00.0750686Z             },
2026-06-18T11:18:00.0750767Z             {
2026-06-18T11:18:00.0750895Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-18T11:18:00.0750978Z               "line": 37
2026-06-18T11:18:00.0751062Z             },
2026-06-18T11:18:00.0751153Z             {
2026-06-18T11:18:00.0751273Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0751363Z               "line": 62
2026-06-18T11:18:00.0751443Z             },
2026-06-18T11:18:00.0751529Z             {
2026-06-18T11:18:00.0751649Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:18:00.0751734Z               "line": 267
2026-06-18T11:18:00.0751819Z             },
2026-06-18T11:18:00.0751900Z             {
2026-06-18T11:18:00.0752009Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0752094Z               "line": 1736
2026-06-18T11:18:00.0752179Z             }
2026-06-18T11:18:00.0752261Z           ]
2026-06-18T11:18:00.0752342Z         },
2026-06-18T11:18:00.0752437Z         "int": {
2026-06-18T11:18:00.0752527Z           "complete": false,
2026-06-18T11:18:00.0752619Z           "evidence": []
2026-06-18T11:18:00.0752704Z         },
2026-06-18T11:18:00.0752784Z         "unit": {
2026-06-18T11:18:00.0752881Z           "complete": true,
2026-06-18T11:18:00.0752981Z           "evidence": [
2026-06-18T11:18:00.0753071Z             {
2026-06-18T11:18:00.0753187Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-18T11:18:00.0753281Z               "line": 360
2026-06-18T11:18:00.0753357Z             },
2026-06-18T11:18:00.0753448Z             {
2026-06-18T11:18:00.0753567Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.0753648Z               "line": 837
2026-06-18T11:18:00.0753738Z             },
2026-06-18T11:18:00.0753821Z             {
2026-06-18T11:18:00.0753929Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.0754015Z               "line": 894
2026-06-18T11:18:00.0754107Z             },
2026-06-18T11:18:00.0754188Z             {
2026-06-18T11:18:00.0754315Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:18:00.0754397Z               "line": 889
2026-06-18T11:18:00.0754475Z             },
2026-06-18T11:18:00.0754564Z             {
2026-06-18T11:18:00.0754677Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:18:00.0754772Z               "line": 1014
2026-06-18T11:18:00.0754857Z             },
2026-06-18T11:18:00.0754942Z             {
2026-06-18T11:18:00.0755065Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.0755147Z               "line": 1264
2026-06-18T11:18:00.0755238Z             },
2026-06-18T11:18:00.0755318Z             {
2026-06-18T11:18:00.0755443Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.0755524Z               "line": 1405
2026-06-18T11:18:00.0755609Z             },
2026-06-18T11:18:00.0755709Z             {
2026-06-18T11:18:00.0755824Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0755910Z               "line": 449
2026-06-18T11:18:00.0755995Z             },
2026-06-18T11:18:00.0756082Z             {
2026-06-18T11:18:00.0756200Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0756373Z               "line": 485
2026-06-18T11:18:00.0756463Z             },
2026-06-18T11:18:00.0756543Z             {
2026-06-18T11:18:00.0756663Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0756754Z               "line": 540
2026-06-18T11:18:00.0756844Z             },
2026-06-18T11:18:00.0756920Z             {
2026-06-18T11:18:00.0757027Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0757121Z               "line": 697
2026-06-18T11:18:00.0757210Z             },
2026-06-18T11:18:00.0757291Z             {
2026-06-18T11:18:00.0757401Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0757560Z               "line": 931
2026-06-18T11:18:00.0757656Z             },
2026-06-18T11:18:00.0757733Z             {
2026-06-18T11:18:00.0757842Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0757932Z               "line": 945
2026-06-18T11:18:00.0758015Z             },
2026-06-18T11:18:00.0758110Z             {
2026-06-18T11:18:00.0758223Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0758315Z               "line": 1290
2026-06-18T11:18:00.0758400Z             },
2026-06-18T11:18:00.0758495Z             {
2026-06-18T11:18:00.0758606Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:18:00.0758696Z               "line": 583
2026-06-18T11:18:00.0758772Z             },
2026-06-18T11:18:00.0758853Z             {
2026-06-18T11:18:00.0759044Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0759134Z               "line": 7853
2026-06-18T11:18:00.0759215Z             }
2026-06-18T11:18:00.0759302Z           ]
2026-06-18T11:18:00.0759401Z         }
2026-06-18T11:18:00.0759477Z       }
2026-06-18T11:18:00.0759565Z     },
2026-06-18T11:18:00.0759641Z     {
2026-06-18T11:18:00.0759734Z       "id": "REQ-INST-4",
2026-06-18T11:18:00.0759913Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-18T11:18:00.0760017Z       "requiredStages": [
2026-06-18T11:18:00.0760096Z         "impl",
2026-06-18T11:18:00.0760177Z         "unit"
2026-06-18T11:18:00.0760264Z       ],
2026-06-18T11:18:00.0760346Z       "stages": {
2026-06-18T11:18:00.0760430Z         "doc": {
2026-06-18T11:18:00.0760531Z           "complete": false,
2026-06-18T11:18:00.0760617Z           "evidence": []
2026-06-18T11:18:00.0760698Z         },
2026-06-18T11:18:00.0760797Z         "impl": {
2026-06-18T11:18:00.0760889Z           "complete": true,
2026-06-18T11:18:00.0760989Z           "evidence": [
2026-06-18T11:18:00.0761073Z             {
2026-06-18T11:18:00.0761199Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.0761298Z               "line": 385
2026-06-18T11:18:00.0761378Z             },
2026-06-18T11:18:00.0761460Z             {
2026-06-18T11:18:00.0761566Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0761661Z               "line": 202
2026-06-18T11:18:00.0761746Z             },
2026-06-18T11:18:00.0761833Z             {
2026-06-18T11:18:00.0761941Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0762037Z               "line": 234
2026-06-18T11:18:00.0762114Z             },
2026-06-18T11:18:00.0762196Z             {
2026-06-18T11:18:00.0762313Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0762403Z               "line": 274
2026-06-18T11:18:00.0762489Z             }
2026-06-18T11:18:00.0762560Z           ]
2026-06-18T11:18:00.0762644Z         },
2026-06-18T11:18:00.0762729Z         "int": {
2026-06-18T11:18:00.0762811Z           "complete": false,
2026-06-18T11:18:00.0762907Z           "evidence": []
2026-06-18T11:18:00.0762992Z         },
2026-06-18T11:18:00.0763078Z         "unit": {
2026-06-18T11:18:00.0763164Z           "complete": true,
2026-06-18T11:18:00.0763254Z           "evidence": [
2026-06-18T11:18:00.0763335Z             {
2026-06-18T11:18:00.0763456Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.0763645Z               "line": 889
2026-06-18T11:18:00.0763732Z             },
2026-06-18T11:18:00.0763812Z             {
2026-06-18T11:18:00.0763927Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0764017Z               "line": 561
2026-06-18T11:18:00.0764104Z             },
2026-06-18T11:18:00.0764189Z             {
2026-06-18T11:18:00.0764303Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0764386Z               "line": 668
2026-06-18T11:18:00.0764470Z             },
2026-06-18T11:18:00.0764556Z             {
2026-06-18T11:18:00.0764676Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0764866Z               "line": 750
2026-06-18T11:18:00.0764952Z             }
2026-06-18T11:18:00.0765030Z           ]
2026-06-18T11:18:00.0765114Z         }
2026-06-18T11:18:00.0765199Z       }
2026-06-18T11:18:00.0765284Z     },
2026-06-18T11:18:00.0765371Z     {
2026-06-18T11:18:00.0765459Z       "id": "REQ-INST-5",
2026-06-18T11:18:00.0765640Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-18T11:18:00.0765741Z       "requiredStages": [
2026-06-18T11:18:00.0765826Z         "impl",
2026-06-18T11:18:00.0765916Z         "unit",
2026-06-18T11:18:00.0766003Z         "int"
2026-06-18T11:18:00.0766089Z       ],
2026-06-18T11:18:00.0766179Z       "stages": {
2026-06-18T11:18:00.0766260Z         "doc": {
2026-06-18T11:18:00.0766356Z           "complete": false,
2026-06-18T11:18:00.0766446Z           "evidence": []
2026-06-18T11:18:00.0766531Z         },
2026-06-18T11:18:00.0766618Z         "impl": {
2026-06-18T11:18:00.0766713Z           "complete": true,
2026-06-18T11:18:00.0766818Z           "evidence": [
2026-06-18T11:18:00.0766899Z             {
2026-06-18T11:18:00.0767019Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-18T11:18:00.0767103Z               "line": 85
2026-06-18T11:18:00.0767189Z             },
2026-06-18T11:18:00.0767277Z             {
2026-06-18T11:18:00.0767399Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T11:18:00.0767490Z               "line": 68
2026-06-18T11:18:00.0767577Z             },
2026-06-18T11:18:00.0767653Z             {
2026-06-18T11:18:00.0767766Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T11:18:00.0767856Z               "line": 99
2026-06-18T11:18:00.0767946Z             },
2026-06-18T11:18:00.0768036Z             {
2026-06-18T11:18:00.0768139Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T11:18:00.0768226Z               "line": 183
2026-06-18T11:18:00.0768312Z             },
2026-06-18T11:18:00.0768398Z             {
2026-06-18T11:18:00.0768521Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T11:18:00.0768618Z               "line": 314
2026-06-18T11:18:00.0768708Z             }
2026-06-18T11:18:00.0768793Z           ]
2026-06-18T11:18:00.0768870Z         },
2026-06-18T11:18:00.0769037Z         "int": {
2026-06-18T11:18:00.0769127Z           "complete": true,
2026-06-18T11:18:00.0769213Z           "evidence": [
2026-06-18T11:18:00.0769303Z             {
2026-06-18T11:18:00.0769451Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T11:18:00.0769543Z               "line": 156
2026-06-18T11:18:00.0769618Z             },
2026-06-18T11:18:00.0769699Z             {
2026-06-18T11:18:00.0769820Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-18T11:18:00.0769909Z               "line": 145
2026-06-18T11:18:00.0769985Z             },
2026-06-18T11:18:00.0770061Z             {
2026-06-18T11:18:00.0770187Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.0770281Z               "line": 706
2026-06-18T11:18:00.0770401Z             },
2026-06-18T11:18:00.0770497Z             {
2026-06-18T11:18:00.0770623Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.0770718Z               "line": 1068
2026-06-18T11:18:00.0770804Z             }
2026-06-18T11:18:00.0770892Z           ]
2026-06-18T11:18:00.0771091Z         },
2026-06-18T11:18:00.0771177Z         "unit": {
2026-06-18T11:18:00.0771267Z           "complete": true,
2026-06-18T11:18:00.0771362Z           "evidence": [
2026-06-18T11:18:00.0771435Z             {
2026-06-18T11:18:00.0771544Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T11:18:00.0771643Z               "line": 552
2026-06-18T11:18:00.0771720Z             },
2026-06-18T11:18:00.0771806Z             {
2026-06-18T11:18:00.0771920Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T11:18:00.0772011Z               "line": 595
2026-06-18T11:18:00.0772093Z             },
2026-06-18T11:18:00.0772177Z             {
2026-06-18T11:18:00.0772393Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-18T11:18:00.0772483Z               "line": 219
2026-06-18T11:18:00.0772569Z             }
2026-06-18T11:18:00.0772645Z           ]
2026-06-18T11:18:00.0772727Z         }
2026-06-18T11:18:00.0772807Z       }
2026-06-18T11:18:00.0772897Z     },
2026-06-18T11:18:00.0772982Z     {
2026-06-18T11:18:00.0773073Z       "id": "REQ-INST-6",
2026-06-18T11:18:00.0773247Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-18T11:18:00.0773342Z       "requiredStages": [
2026-06-18T11:18:00.0773444Z         "impl",
2026-06-18T11:18:00.0773562Z         "unit",
2026-06-18T11:18:00.0773667Z         "int"
2026-06-18T11:18:00.0773762Z       ],
2026-06-18T11:18:00.0773838Z       "stages": {
2026-06-18T11:18:00.0773919Z         "doc": {
2026-06-18T11:18:00.0774006Z           "complete": true,
2026-06-18T11:18:00.0774101Z           "evidence": [
2026-06-18T11:18:00.0774186Z             {
2026-06-18T11:18:00.0774292Z               "path": "docs/DEFERRED.md",
2026-06-18T11:18:00.0774387Z               "line": 13
2026-06-18T11:18:00.0774472Z             }
2026-06-18T11:18:00.0774553Z           ]
2026-06-18T11:18:00.0774645Z         },
2026-06-18T11:18:00.0774725Z         "impl": {
2026-06-18T11:18:00.0774820Z           "complete": true,
2026-06-18T11:18:00.0774912Z           "evidence": [
2026-06-18T11:18:00.0774993Z             {
2026-06-18T11:18:00.0775116Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T11:18:00.0775202Z               "line": 391
2026-06-18T11:18:00.0775290Z             },
2026-06-18T11:18:00.0775383Z             {
2026-06-18T11:18:00.0775498Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-18T11:18:00.0775580Z               "line": 27
2026-06-18T11:18:00.0775665Z             },
2026-06-18T11:18:00.0775750Z             {
2026-06-18T11:18:00.0775869Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-18T11:18:00.0775959Z               "line": 73
2026-06-18T11:18:00.0776057Z             },
2026-06-18T11:18:00.0776147Z             {
2026-06-18T11:18:00.0776267Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-18T11:18:00.0776358Z               "line": 182
2026-06-18T11:18:00.0776452Z             },
2026-06-18T11:18:00.0776539Z             {
2026-06-18T11:18:00.0776668Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0776763Z               "line": 426
2026-06-18T11:18:00.0776849Z             },
2026-06-18T11:18:00.0776930Z             {
2026-06-18T11:18:00.0777053Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-18T11:18:00.0777140Z               "line": 31
2026-06-18T11:18:00.0777235Z             },
2026-06-18T11:18:00.0777311Z             {
2026-06-18T11:18:00.0777421Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T11:18:00.0777503Z               "line": 202
2026-06-18T11:18:00.0777583Z             },
2026-06-18T11:18:00.0777668Z             {
2026-06-18T11:18:00.0777789Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T11:18:00.0777884Z               "line": 83
2026-06-18T11:18:00.0777978Z             },
2026-06-18T11:18:00.0778055Z             {
2026-06-18T11:18:00.0778166Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0778260Z               "line": 1737
2026-06-18T11:18:00.0778426Z             },
2026-06-18T11:18:00.0778507Z             {
2026-06-18T11:18:00.0778629Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T11:18:00.0778728Z               "line": 179
2026-06-18T11:18:00.0778805Z             },
2026-06-18T11:18:00.0778887Z             {
2026-06-18T11:18:00.0779053Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T11:18:00.0779149Z               "line": 215
2026-06-18T11:18:00.0779235Z             }
2026-06-18T11:18:00.0779320Z           ]
2026-06-18T11:18:00.0779406Z         },
2026-06-18T11:18:00.0779492Z         "int": {
2026-06-18T11:18:00.0779592Z           "complete": true,
2026-06-18T11:18:00.0779788Z           "evidence": [
2026-06-18T11:18:00.0779873Z             {
2026-06-18T11:18:00.0779992Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.0780088Z               "line": 720
2026-06-18T11:18:00.0780183Z             },
2026-06-18T11:18:00.0780259Z             {
2026-06-18T11:18:00.0780394Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.0780479Z               "line": 1113
2026-06-18T11:18:00.0780570Z             },
2026-06-18T11:18:00.0780651Z             {
2026-06-18T11:18:00.0780766Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T11:18:00.0780855Z               "line": 726
2026-06-18T11:18:00.0780936Z             }
2026-06-18T11:18:00.0781024Z           ]
2026-06-18T11:18:00.0781113Z         },
2026-06-18T11:18:00.0781207Z         "unit": {
2026-06-18T11:18:00.0781302Z           "complete": true,
2026-06-18T11:18:00.0781394Z           "evidence": [
2026-06-18T11:18:00.0781475Z             {
2026-06-18T11:18:00.0781608Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T11:18:00.0781704Z               "line": 661
2026-06-18T11:18:00.0781785Z             },
2026-06-18T11:18:00.0781879Z             {
2026-06-18T11:18:00.0781995Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.0782085Z               "line": 899
2026-06-18T11:18:00.0782166Z             },
2026-06-18T11:18:00.0782247Z             {
2026-06-18T11:18:00.0782376Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-18T11:18:00.0782457Z               "line": 66
2026-06-18T11:18:00.0782547Z             },
2026-06-18T11:18:00.0782624Z             {
2026-06-18T11:18:00.0782742Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T11:18:00.0782837Z               "line": 297
2026-06-18T11:18:00.0782910Z             },
2026-06-18T11:18:00.0783006Z             {
2026-06-18T11:18:00.0783104Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T11:18:00.0783196Z               "line": 203
2026-06-18T11:18:00.0783283Z             }
2026-06-18T11:18:00.0783372Z           ]
2026-06-18T11:18:00.0783462Z         }
2026-06-18T11:18:00.0783542Z       }
2026-06-18T11:18:00.0783624Z     },
2026-06-18T11:18:00.0783708Z     {
2026-06-18T11:18:00.0783803Z       "id": "REQ-INST-7",
2026-06-18T11:18:00.0783941Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-18T11:18:00.0784051Z       "requiredStages": [
2026-06-18T11:18:00.0784136Z         "impl",
2026-06-18T11:18:00.0784222Z         "unit",
2026-06-18T11:18:00.0784313Z         "int"
2026-06-18T11:18:00.0784394Z       ],
2026-06-18T11:18:00.0784489Z       "stages": {
2026-06-18T11:18:00.0784571Z         "doc": {
2026-06-18T11:18:00.0784671Z           "complete": false,
2026-06-18T11:18:00.0784765Z           "evidence": []
2026-06-18T11:18:00.0784852Z         },
2026-06-18T11:18:00.0784938Z         "impl": {
2026-06-18T11:18:00.0785033Z           "complete": true,
2026-06-18T11:18:00.0785123Z           "evidence": [
2026-06-18T11:18:00.0785205Z             {
2026-06-18T11:18:00.0785324Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T11:18:00.0785424Z               "line": 436
2026-06-18T11:18:00.0785511Z             },
2026-06-18T11:18:00.0785596Z             {
2026-06-18T11:18:00.0785724Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.0785920Z               "line": 27
2026-06-18T11:18:00.0786001Z             },
2026-06-18T11:18:00.0786082Z             {
2026-06-18T11:18:00.0786212Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.0786305Z               "line": 207
2026-06-18T11:18:00.0786395Z             },
2026-06-18T11:18:00.0786481Z             {
2026-06-18T11:18:00.0786603Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.0786693Z               "line": 344
2026-06-18T11:18:00.0786789Z             },
2026-06-18T11:18:00.0786875Z             {
2026-06-18T11:18:00.0786989Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-18T11:18:00.0787156Z               "line": 59
2026-06-18T11:18:00.0787238Z             },
2026-06-18T11:18:00.0787318Z             {
2026-06-18T11:18:00.0787443Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0787528Z               "line": 41
2026-06-18T11:18:00.0787613Z             },
2026-06-18T11:18:00.0787700Z             {
2026-06-18T11:18:00.0787828Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-18T11:18:00.0787909Z               "line": 27
2026-06-18T11:18:00.0788004Z             },
2026-06-18T11:18:00.0788082Z             {
2026-06-18T11:18:00.0788200Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-18T11:18:00.0788301Z               "line": 119
2026-06-18T11:18:00.0788378Z             },
2026-06-18T11:18:00.0788468Z             {
2026-06-18T11:18:00.0788591Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-18T11:18:00.0788678Z               "line": 134
2026-06-18T11:18:00.0788773Z             },
2026-06-18T11:18:00.0788858Z             {
2026-06-18T11:18:00.0789053Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T11:18:00.0789142Z               "line": 139
2026-06-18T11:18:00.0789231Z             }
2026-06-18T11:18:00.0789313Z           ]
2026-06-18T11:18:00.0789399Z         },
2026-06-18T11:18:00.0789523Z         "int": {
2026-06-18T11:18:00.0789623Z           "complete": true,
2026-06-18T11:18:00.0789723Z           "evidence": [
2026-06-18T11:18:00.0789804Z             {
2026-06-18T11:18:00.0789932Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-18T11:18:00.0790024Z               "line": 145
2026-06-18T11:18:00.0790119Z             },
2026-06-18T11:18:00.0790199Z             {
2026-06-18T11:18:00.0790325Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.0790414Z               "line": 664
2026-06-18T11:18:00.0790490Z             },
2026-06-18T11:18:00.0790586Z             {
2026-06-18T11:18:00.0790710Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.0790810Z               "line": 963
2026-06-18T11:18:00.0790886Z             }
2026-06-18T11:18:00.0790973Z           ]
2026-06-18T11:18:00.0791058Z         },
2026-06-18T11:18:00.0791139Z         "unit": {
2026-06-18T11:18:00.0791235Z           "complete": true,
2026-06-18T11:18:00.0791326Z           "evidence": [
2026-06-18T11:18:00.0791420Z             {
2026-06-18T11:18:00.0791550Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.0791641Z               "line": 1134
2026-06-18T11:18:00.0791725Z             },
2026-06-18T11:18:00.0791800Z             {
2026-06-18T11:18:00.0791929Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.0792021Z               "line": 1521
2026-06-18T11:18:00.0792110Z             },
2026-06-18T11:18:00.0792201Z             {
2026-06-18T11:18:00.0792326Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-18T11:18:00.0792425Z               "line": 84
2026-06-18T11:18:00.0792506Z             },
2026-06-18T11:18:00.0792588Z             {
2026-06-18T11:18:00.0792707Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0792802Z               "line": 812
2026-06-18T11:18:00.0792888Z             },
2026-06-18T11:18:00.0793083Z             {
2026-06-18T11:18:00.0793208Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0793293Z               "line": 823
2026-06-18T11:18:00.0793384Z             },
2026-06-18T11:18:00.0793465Z             {
2026-06-18T11:18:00.0793575Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0793674Z               "line": 838
2026-06-18T11:18:00.0793751Z             },
2026-06-18T11:18:00.0793833Z             {
2026-06-18T11:18:00.0793946Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-18T11:18:00.0794041Z               "line": 166
2026-06-18T11:18:00.0794136Z             },
2026-06-18T11:18:00.0794334Z             {
2026-06-18T11:18:00.0794458Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-18T11:18:00.0794549Z               "line": 181
2026-06-18T11:18:00.0794648Z             },
2026-06-18T11:18:00.0794729Z             {
2026-06-18T11:18:00.0794850Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-18T11:18:00.0794949Z               "line": 214
2026-06-18T11:18:00.0795035Z             }
2026-06-18T11:18:00.0795122Z           ]
2026-06-18T11:18:00.0795202Z         }
2026-06-18T11:18:00.0795283Z       }
2026-06-18T11:18:00.0795364Z     },
2026-06-18T11:18:00.0795446Z     {
2026-06-18T11:18:00.0795545Z       "id": "REQ-INST-8",
2026-06-18T11:18:00.0795688Z       "title": "Remote-control mode distinct from local operation",
2026-06-18T11:18:00.0795789Z       "requiredStages": [
2026-06-18T11:18:00.0795874Z         "impl",
2026-06-18T11:18:00.0795955Z         "unit",
2026-06-18T11:18:00.0796042Z         "int"
2026-06-18T11:18:00.0796123Z       ],
2026-06-18T11:18:00.0796222Z       "stages": {
2026-06-18T11:18:00.0796308Z         "doc": {
2026-06-18T11:18:00.0796410Z           "complete": false,
2026-06-18T11:18:00.0796489Z           "evidence": []
2026-06-18T11:18:00.0796580Z         },
2026-06-18T11:18:00.0796667Z         "impl": {
2026-06-18T11:18:00.0796767Z           "complete": true,
2026-06-18T11:18:00.0796870Z           "evidence": [
2026-06-18T11:18:00.0796955Z             {
2026-06-18T11:18:00.0797075Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-18T11:18:00.0797168Z               "line": 104
2026-06-18T11:18:00.0797258Z             },
2026-06-18T11:18:00.0797339Z             {
2026-06-18T11:18:00.0797469Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-18T11:18:00.0797568Z               "line": 299
2026-06-18T11:18:00.0797650Z             },
2026-06-18T11:18:00.0797736Z             {
2026-06-18T11:18:00.0797854Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-18T11:18:00.0797950Z               "line": 339
2026-06-18T11:18:00.0798041Z             },
2026-06-18T11:18:00.0798127Z             {
2026-06-18T11:18:00.0798245Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-18T11:18:00.0798323Z               "line": 62
2026-06-18T11:18:00.0798412Z             }
2026-06-18T11:18:00.0798498Z           ]
2026-06-18T11:18:00.0798589Z         },
2026-06-18T11:18:00.0798666Z         "int": {
2026-06-18T11:18:00.0798765Z           "complete": true,
2026-06-18T11:18:00.0798856Z           "evidence": [
2026-06-18T11:18:00.0799023Z             {
2026-06-18T11:18:00.0799137Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T11:18:00.0799219Z               "line": 415
2026-06-18T11:18:00.0799310Z             },
2026-06-18T11:18:00.0799389Z             {
2026-06-18T11:18:00.0799512Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.0799613Z               "line": 1027
2026-06-18T11:18:00.0799692Z             }
2026-06-18T11:18:00.0799773Z           ]
2026-06-18T11:18:00.0799868Z         },
2026-06-18T11:18:00.0799954Z         "unit": {
2026-06-18T11:18:00.0800054Z           "complete": true,
2026-06-18T11:18:00.0800139Z           "evidence": [
2026-06-18T11:18:00.0800226Z             {
2026-06-18T11:18:00.0800345Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T11:18:00.0800541Z               "line": 359
2026-06-18T11:18:00.0800617Z             },
2026-06-18T11:18:00.0800707Z             {
2026-06-18T11:18:00.0800817Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T11:18:00.0800913Z               "line": 515
2026-06-18T11:18:00.0801003Z             },
2026-06-18T11:18:00.0801079Z             {
2026-06-18T11:18:00.0801200Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-18T11:18:00.0801289Z               "line": 116
2026-06-18T11:18:00.0801379Z             },
2026-06-18T11:18:00.0801461Z             {
2026-06-18T11:18:00.0801585Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-18T11:18:00.0801771Z               "line": 160
2026-06-18T11:18:00.0801858Z             }
2026-06-18T11:18:00.0801946Z           ]
2026-06-18T11:18:00.0802028Z         }
2026-06-18T11:18:00.0802115Z       }
2026-06-18T11:18:00.0802205Z     },
2026-06-18T11:18:00.0802299Z     {
2026-06-18T11:18:00.0802394Z       "id": "REQ-INST-9",
2026-06-18T11:18:00.0802576Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-18T11:18:00.0802680Z       "requiredStages": [
2026-06-18T11:18:00.0802756Z         "impl",
2026-06-18T11:18:00.0802848Z         "unit"
2026-06-18T11:18:00.0802929Z       ],
2026-06-18T11:18:00.0803023Z       "stages": {
2026-06-18T11:18:00.0803120Z         "doc": {
2026-06-18T11:18:00.0803215Z           "complete": false,
2026-06-18T11:18:00.0803310Z           "evidence": []
2026-06-18T11:18:00.0803391Z         },
2026-06-18T11:18:00.0803482Z         "impl": {
2026-06-18T11:18:00.0803562Z           "complete": true,
2026-06-18T11:18:00.0803652Z           "evidence": [
2026-06-18T11:18:00.0803750Z             {
2026-06-18T11:18:00.0803868Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0803963Z               "line": 449
2026-06-18T11:18:00.0804045Z             }
2026-06-18T11:18:00.0804130Z           ]
2026-06-18T11:18:00.0804215Z         },
2026-06-18T11:18:00.0804301Z         "int": {
2026-06-18T11:18:00.0804412Z           "complete": false,
2026-06-18T11:18:00.0804511Z           "evidence": []
2026-06-18T11:18:00.0804606Z         },
2026-06-18T11:18:00.0804682Z         "unit": {
2026-06-18T11:18:00.0804782Z           "complete": true,
2026-06-18T11:18:00.0804871Z           "evidence": [
2026-06-18T11:18:00.0804961Z             {
2026-06-18T11:18:00.0807496Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0807611Z               "line": 1397
2026-06-18T11:18:00.0807691Z             },
2026-06-18T11:18:00.0807771Z             {
2026-06-18T11:18:00.0807900Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0808005Z               "line": 1406
2026-06-18T11:18:00.0808090Z             },
2026-06-18T11:18:00.0808171Z             {
2026-06-18T11:18:00.0808296Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0808391Z               "line": 1422
2026-06-18T11:18:00.0808471Z             },
2026-06-18T11:18:00.0808568Z             {
2026-06-18T11:18:00.0808687Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0808781Z               "line": 1434
2026-06-18T11:18:00.0808859Z             },
2026-06-18T11:18:00.0809035Z             {
2026-06-18T11:18:00.0809159Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.0809250Z               "line": 1454
2026-06-18T11:18:00.0809334Z             }
2026-06-18T11:18:00.0809416Z           ]
2026-06-18T11:18:00.0809498Z         }
2026-06-18T11:18:00.0809579Z       }
2026-06-18T11:18:00.0809668Z     },
2026-06-18T11:18:00.0809750Z     {
2026-06-18T11:18:00.0809842Z       "id": "REQ-INSTALL-1",
2026-06-18T11:18:00.0810049Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-18T11:18:00.0810149Z       "requiredStages": [
2026-06-18T11:18:00.0810239Z         "doc",
2026-06-18T11:18:00.0810318Z         "impl",
2026-06-18T11:18:00.0810408Z         "int"
2026-06-18T11:18:00.0810605Z       ],
2026-06-18T11:18:00.0810685Z       "stages": {
2026-06-18T11:18:00.0810767Z         "doc": {
2026-06-18T11:18:00.0810867Z           "complete": true,
2026-06-18T11:18:00.0810962Z           "evidence": [
2026-06-18T11:18:00.0811047Z             {
2026-06-18T11:18:00.0811154Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.0811244Z               "line": 732
2026-06-18T11:18:00.0811329Z             }
2026-06-18T11:18:00.0811411Z           ]
2026-06-18T11:18:00.0811492Z         },
2026-06-18T11:18:00.0811582Z         "impl": {
2026-06-18T11:18:00.0811677Z           "complete": true,
2026-06-18T11:18:00.0811760Z           "evidence": [
2026-06-18T11:18:00.0811973Z             {
2026-06-18T11:18:00.0812089Z               "path": "installer/install.ps1",
2026-06-18T11:18:00.0812183Z               "line": 57
2026-06-18T11:18:00.0812268Z             },
2026-06-18T11:18:00.0812351Z             {
2026-06-18T11:18:00.0812455Z               "path": "installer/install.sh",
2026-06-18T11:18:00.0812559Z               "line": 52
2026-06-18T11:18:00.0812641Z             }
2026-06-18T11:18:00.0812723Z           ]
2026-06-18T11:18:00.0812803Z         },
2026-06-18T11:18:00.0812888Z         "int": {
2026-06-18T11:18:00.0812988Z           "complete": true,
2026-06-18T11:18:00.0813084Z           "evidence": [
2026-06-18T11:18:00.0813164Z             {
2026-06-18T11:18:00.0813297Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-18T11:18:00.0813379Z               "line": 21
2026-06-18T11:18:00.0813465Z             }
2026-06-18T11:18:00.0813550Z           ]
2026-06-18T11:18:00.0813636Z         },
2026-06-18T11:18:00.0813718Z         "unit": {
2026-06-18T11:18:00.0813822Z           "complete": false,
2026-06-18T11:18:00.0813917Z           "evidence": []
2026-06-18T11:18:00.0813995Z         }
2026-06-18T11:18:00.0814075Z       }
2026-06-18T11:18:00.0814161Z     },
2026-06-18T11:18:00.0814246Z     {
2026-06-18T11:18:00.0814338Z       "id": "REQ-INSTALL-10",
2026-06-18T11:18:00.0815703Z       "title": "Windows at-logon autostart runs the daemon in the background with no persistent window: the scheduled task launches `spt daemon start` (which spawn_detaches a console-less DETACHED_PROCESS daemon and exits) rather than the foreground `spt daemon run` — Task Scheduler's interactive ONLOGON launch of a long-lived console process otherwise leaves a visible console window for the daemon's whole lifetime (v0.7.4)",
2026-06-18T11:18:00.0815811Z       "requiredStages": [
2026-06-18T11:18:00.0815898Z         "impl",
2026-06-18T11:18:00.0815985Z         "unit"
2026-06-18T11:18:00.0816070Z       ],
2026-06-18T11:18:00.0816159Z       "stages": {
2026-06-18T11:18:00.0816251Z         "doc": {
2026-06-18T11:18:00.0816356Z           "complete": false,
2026-06-18T11:18:00.0816450Z           "evidence": []
2026-06-18T11:18:00.0816538Z         },
2026-06-18T11:18:00.0816633Z         "impl": {
2026-06-18T11:18:00.0816728Z           "complete": true,
2026-06-18T11:18:00.0816809Z           "evidence": [
2026-06-18T11:18:00.0816895Z             {
2026-06-18T11:18:00.0817004Z               "path": "installer/install.ps1",
2026-06-18T11:18:00.0817099Z               "line": 191
2026-06-18T11:18:00.0817177Z             }
2026-06-18T11:18:00.0817271Z           ]
2026-06-18T11:18:00.0817352Z         },
2026-06-18T11:18:00.0817438Z         "int": {
2026-06-18T11:18:00.0817525Z           "complete": false,
2026-06-18T11:18:00.0817610Z           "evidence": []
2026-06-18T11:18:00.0817696Z         },
2026-06-18T11:18:00.0817777Z         "unit": {
2026-06-18T11:18:00.0817878Z           "complete": true,
2026-06-18T11:18:00.0817976Z           "evidence": [
2026-06-18T11:18:00.0818061Z             {
2026-06-18T11:18:00.0818190Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-18T11:18:00.0818270Z               "line": 211
2026-06-18T11:18:00.0818354Z             }
2026-06-18T11:18:00.0818436Z           ]
2026-06-18T11:18:00.0818518Z         }
2026-06-18T11:18:00.0818599Z       }
2026-06-18T11:18:00.0818683Z     },
2026-06-18T11:18:00.0818842Z     {
2026-06-18T11:18:00.0819012Z       "id": "REQ-INSTALL-11",
2026-06-18T11:18:00.0820776Z       "title": "Adapter command templates resolve their program against the adapter's install dir BEFORE PATH: a `.spt`-shipped binary (dropped to adapters/_github/<safe>/ by --release/--github acquisition, or kept in the source_dir under copy-mode where only manifest+strings/ are copied to adapters/<name>) runs without any PATH placement — a bare-name template token (e.g. `claude-spt-digest ...`) is rewritten to <install_dir>/<program>(.exe on Windows) when that file exists, else left bare for the PATH fallback. Makes a `.spt` self-contained (closes the --release bundled-binary gap perri confirmed) (v0.7.4)",
2026-06-18T11:18:00.0820993Z       "requiredStages": [
2026-06-18T11:18:00.0821079Z         "doc",
2026-06-18T11:18:00.0821174Z         "impl",
2026-06-18T11:18:00.0821260Z         "unit"
2026-06-18T11:18:00.0821361Z       ],
2026-06-18T11:18:00.0821446Z       "stages": {
2026-06-18T11:18:00.0821541Z         "doc": {
2026-06-18T11:18:00.0821637Z           "complete": true,
2026-06-18T11:18:00.0821723Z           "evidence": [
2026-06-18T11:18:00.0821804Z             {
2026-06-18T11:18:00.0821903Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.0821981Z               "line": 138
2026-06-18T11:18:00.0822071Z             },
2026-06-18T11:18:00.0822142Z             {
2026-06-18T11:18:00.0822261Z               "path": "docs/MANIFEST.md",
2026-06-18T11:18:00.0822344Z               "line": 82
2026-06-18T11:18:00.0822428Z             }
2026-06-18T11:18:00.0822514Z           ]
2026-06-18T11:18:00.0822606Z         },
2026-06-18T11:18:00.0822691Z         "impl": {
2026-06-18T11:18:00.0822796Z           "complete": true,
2026-06-18T11:18:00.0822886Z           "evidence": [
2026-06-18T11:18:00.0822964Z             {
2026-06-18T11:18:00.0823095Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T11:18:00.0823187Z               "line": 223
2026-06-18T11:18:00.0823307Z             },
2026-06-18T11:18:00.0823381Z             {
2026-06-18T11:18:00.0823509Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.0823605Z               "line": 99
2026-06-18T11:18:00.0823692Z             },
2026-06-18T11:18:00.0823781Z             {
2026-06-18T11:18:00.0823891Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.0823987Z               "line": 117
2026-06-18T11:18:00.0824072Z             },
2026-06-18T11:18:00.0824157Z             {
2026-06-18T11:18:00.0824287Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T11:18:00.0824378Z               "line": 332
2026-06-18T11:18:00.0824463Z             },
2026-06-18T11:18:00.0824555Z             {
2026-06-18T11:18:00.0824678Z               "path": "crates/spt-live/src/digest.rs",
2026-06-18T11:18:00.0824773Z               "line": 88
2026-06-18T11:18:00.0824860Z             },
2026-06-18T11:18:00.0824950Z             {
2026-06-18T11:18:00.0825064Z               "path": "crates/spt-live/src/digest.rs",
2026-06-18T11:18:00.0825213Z               "line": 104
2026-06-18T11:18:00.0825298Z             },
2026-06-18T11:18:00.0825383Z             {
2026-06-18T11:18:00.0825504Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0825594Z               "line": 297
2026-06-18T11:18:00.0825674Z             },
2026-06-18T11:18:00.0825759Z             {
2026-06-18T11:18:00.0825873Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0825967Z               "line": 332
2026-06-18T11:18:00.0826052Z             },
2026-06-18T11:18:00.0826177Z             {
2026-06-18T11:18:00.0826296Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0826395Z               "line": 523
2026-06-18T11:18:00.0826482Z             },
2026-06-18T11:18:00.0826568Z             {
2026-06-18T11:18:00.0826677Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0826773Z               "line": 546
2026-06-18T11:18:00.0826859Z             },
2026-06-18T11:18:00.0827098Z             {
2026-06-18T11:18:00.0827230Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0827316Z               "line": 561
2026-06-18T11:18:00.0827407Z             },
2026-06-18T11:18:00.0827488Z             {
2026-06-18T11:18:00.0827597Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T11:18:00.0827693Z               "line": 492
2026-06-18T11:18:00.0827775Z             }
2026-06-18T11:18:00.0827865Z           ]
2026-06-18T11:18:00.0827960Z         },
2026-06-18T11:18:00.0828042Z         "int": {
2026-06-18T11:18:00.0828142Z           "complete": false,
2026-06-18T11:18:00.0828222Z           "evidence": []
2026-06-18T11:18:00.0828409Z         },
2026-06-18T11:18:00.0828503Z         "unit": {
2026-06-18T11:18:00.0828598Z           "complete": true,
2026-06-18T11:18:00.0828683Z           "evidence": [
2026-06-18T11:18:00.0828760Z             {
2026-06-18T11:18:00.0828882Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0829068Z               "line": 799
2026-06-18T11:18:00.0829159Z             },
2026-06-18T11:18:00.0829238Z             {
2026-06-18T11:18:00.0829369Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0829469Z               "line": 811
2026-06-18T11:18:00.0829558Z             },
2026-06-18T11:18:00.0829650Z             {
2026-06-18T11:18:00.0829764Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.0829854Z               "line": 820
2026-06-18T11:18:00.0829931Z             }
2026-06-18T11:18:00.0830022Z           ]
2026-06-18T11:18:00.0830107Z         }
2026-06-18T11:18:00.0830188Z       }
2026-06-18T11:18:00.0830284Z     },
2026-06-18T11:18:00.0830370Z     {
2026-06-18T11:18:00.0830469Z       "id": "REQ-INSTALL-12",
2026-06-18T11:18:00.0833036Z       "title": "Durable active-profile pointer for bind-time profile selection (ADR-0021): adapters/active-profiles.toml at the registry ROOT (sibling to the per-adapter <name>/ dirs, so adapter add/update/remove — which only rewrite a <name>/ subdir — can never clobber it), a flat host_binary → \"adapter[:profile]\" map. Read at bind as the PRIMARY profile selector; unset → the registered_at_ms fallback (REQ-START-5). Written ONLY by `spt adapter use <adapter>[:profile]` (resolves the adapter's host_binaries → sets each binary→adapter[:profile]); `spt adapter use --clear <adapter|binary>` drops. NEVER auto-written by install/update/adapter add (that is precisely what would let an update silently flip the active profile). A stale pointer (uninstalled adapter / deleted profile) self-heals: ignored, fall back, warn once. Pruned on adapter remove. Atomic write (spt_store atomic). (v0.9.0)",
2026-06-18T11:18:00.0833166Z       "requiredStages": [
2026-06-18T11:18:00.0833256Z         "doc",
2026-06-18T11:18:00.0833346Z         "impl",
2026-06-18T11:18:00.0833427Z         "unit",
2026-06-18T11:18:00.0833509Z         "int"
2026-06-18T11:18:00.0833590Z       ],
2026-06-18T11:18:00.0833680Z       "stages": {
2026-06-18T11:18:00.0833771Z         "doc": {
2026-06-18T11:18:00.0833872Z           "complete": true,
2026-06-18T11:18:00.0833965Z           "evidence": [
2026-06-18T11:18:00.0834051Z             {
2026-06-18T11:18:00.0834151Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.0834238Z               "line": 185
2026-06-18T11:18:00.0834327Z             }
2026-06-18T11:18:00.0834408Z           ]
2026-06-18T11:18:00.0834505Z         },
2026-06-18T11:18:00.0834586Z         "impl": {
2026-06-18T11:18:00.0834685Z           "complete": true,
2026-06-18T11:18:00.0834776Z           "evidence": [
2026-06-18T11:18:00.0834857Z             {
2026-06-18T11:18:00.0834985Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T11:18:00.0835091Z               "line": 27
2026-06-18T11:18:00.0835176Z             },
2026-06-18T11:18:00.0835253Z             {
2026-06-18T11:18:00.0835381Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T11:18:00.0835473Z               "line": 223
2026-06-18T11:18:00.0835672Z             },
2026-06-18T11:18:00.0835754Z             {
2026-06-18T11:18:00.0835862Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0835963Z               "line": 5516
2026-06-18T11:18:00.0836045Z             }
2026-06-18T11:18:00.0836144Z           ]
2026-06-18T11:18:00.0836229Z         },
2026-06-18T11:18:00.0836314Z         "int": {
2026-06-18T11:18:00.0836410Z           "complete": true,
2026-06-18T11:18:00.0836504Z           "evidence": [
2026-06-18T11:18:00.0836594Z             {
2026-06-18T11:18:00.0836718Z               "path": "crates/spt/tests/live_resolve_e2e.rs",
2026-06-18T11:18:00.0836814Z               "line": 19
2026-06-18T11:18:00.0837003Z             }
2026-06-18T11:18:00.0837085Z           ]
2026-06-18T11:18:00.0837170Z         },
2026-06-18T11:18:00.0837256Z         "unit": {
2026-06-18T11:18:00.0837353Z           "complete": true,
2026-06-18T11:18:00.0837438Z           "evidence": [
2026-06-18T11:18:00.0837533Z             {
2026-06-18T11:18:00.0837658Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T11:18:00.0837733Z               "line": 395
2026-06-18T11:18:00.0837819Z             },
2026-06-18T11:18:00.0837904Z             {
2026-06-18T11:18:00.0838029Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T11:18:00.0838115Z               "line": 421
2026-06-18T11:18:00.0838201Z             },
2026-06-18T11:18:00.0838277Z             {
2026-06-18T11:18:00.0838391Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T11:18:00.0838492Z               "line": 440
2026-06-18T11:18:00.0838573Z             },
2026-06-18T11:18:00.0838650Z             {
2026-06-18T11:18:00.0838777Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T11:18:00.0838868Z               "line": 475
2026-06-18T11:18:00.0839031Z             },
2026-06-18T11:18:00.0839106Z             {
2026-06-18T11:18:00.0839210Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0839301Z               "line": 8435
2026-06-18T11:18:00.0839404Z             }
2026-06-18T11:18:00.0839484Z           ]
2026-06-18T11:18:00.0839566Z         }
2026-06-18T11:18:00.0839657Z       }
2026-06-18T11:18:00.0839737Z     },
2026-06-18T11:18:00.0839822Z     {
2026-06-18T11:18:00.0839919Z       "id": "REQ-INSTALL-2",
2026-06-18T11:18:00.0840062Z       "title": "Marketplace-repackaging-friendly install",
2026-06-18T11:18:00.0840156Z       "requiredStages": [
2026-06-18T11:18:00.0840248Z         "doc"
2026-06-18T11:18:00.0840334Z       ],
2026-06-18T11:18:00.0840419Z       "stages": {
2026-06-18T11:18:00.0840500Z         "doc": {
2026-06-18T11:18:00.0840596Z           "complete": true,
2026-06-18T11:18:00.0840696Z           "evidence": [
2026-06-18T11:18:00.0840771Z             {
2026-06-18T11:18:00.0840859Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.0840958Z               "line": 733
2026-06-18T11:18:00.0841044Z             }
2026-06-18T11:18:00.0841120Z           ]
2026-06-18T11:18:00.0841202Z         },
2026-06-18T11:18:00.0841311Z         "impl": {
2026-06-18T11:18:00.0841401Z           "complete": false,
2026-06-18T11:18:00.0841489Z           "evidence": []
2026-06-18T11:18:00.0841574Z         },
2026-06-18T11:18:00.0841654Z         "int": {
2026-06-18T11:18:00.0841753Z           "complete": false,
2026-06-18T11:18:00.0841830Z           "evidence": []
2026-06-18T11:18:00.0841915Z         },
2026-06-18T11:18:00.0841994Z         "unit": {
2026-06-18T11:18:00.0842089Z           "complete": false,
2026-06-18T11:18:00.0842190Z           "evidence": []
2026-06-18T11:18:00.0842267Z         }
2026-06-18T11:18:00.0842356Z       }
2026-06-18T11:18:00.0842428Z     },
2026-06-18T11:18:00.0842524Z     {
2026-06-18T11:18:00.0842619Z       "id": "REQ-INSTALL-3",
2026-06-18T11:18:00.0842767Z       "title": "Idempotent + interactive-optional first run",
2026-06-18T11:18:00.0842872Z       "requiredStages": [
2026-06-18T11:18:00.0842958Z         "impl",
2026-06-18T11:18:00.0843048Z         "int"
2026-06-18T11:18:00.0843125Z       ],
2026-06-18T11:18:00.0843334Z       "stages": {
2026-06-18T11:18:00.0843421Z         "doc": {
2026-06-18T11:18:00.0843511Z           "complete": false,
2026-06-18T11:18:00.0843611Z           "evidence": []
2026-06-18T11:18:00.0843692Z         },
2026-06-18T11:18:00.0843774Z         "impl": {
2026-06-18T11:18:00.0843858Z           "complete": true,
2026-06-18T11:18:00.0843958Z           "evidence": [
2026-06-18T11:18:00.0844041Z             {
2026-06-18T11:18:00.0844155Z               "path": "installer/install.ps1",
2026-06-18T11:18:00.0844250Z               "line": 100
2026-06-18T11:18:00.0844331Z             },
2026-06-18T11:18:00.0844413Z             {
2026-06-18T11:18:00.0844615Z               "path": "installer/install.ps1",
2026-06-18T11:18:00.0844711Z               "line": 111
2026-06-18T11:18:00.0844798Z             },
2026-06-18T11:18:00.0844887Z             {
2026-06-18T11:18:00.0845002Z               "path": "installer/install.sh",
2026-06-18T11:18:00.0845084Z               "line": 79
2026-06-18T11:18:00.0845174Z             }
2026-06-18T11:18:00.0845254Z           ]
2026-06-18T11:18:00.0845341Z         },
2026-06-18T11:18:00.0845426Z         "int": {
2026-06-18T11:18:00.0845517Z           "complete": true,
2026-06-18T11:18:00.0845612Z           "evidence": [
2026-06-18T11:18:00.0845694Z             {
2026-06-18T11:18:00.0845818Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-18T11:18:00.0845913Z               "line": 167
2026-06-18T11:18:00.0845994Z             }
2026-06-18T11:18:00.0846070Z           ]
2026-06-18T11:18:00.0846165Z         },
2026-06-18T11:18:00.0846256Z         "unit": {
2026-06-18T11:18:00.0846348Z           "complete": false,
2026-06-18T11:18:00.0846451Z           "evidence": []
2026-06-18T11:18:00.0846537Z         }
2026-06-18T11:18:00.0846614Z       }
2026-06-18T11:18:00.0846691Z     },
2026-06-18T11:18:00.0846770Z     {
2026-06-18T11:18:00.0846874Z       "id": "REQ-INSTALL-4",
2026-06-18T11:18:00.0847487Z       "title": "Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over",
2026-06-18T11:18:00.0847588Z       "requiredStages": [
2026-06-18T11:18:00.0847674Z         "impl",
2026-06-18T11:18:00.0847764Z         "unit"
2026-06-18T11:18:00.0847849Z       ],
2026-06-18T11:18:00.0847951Z       "stages": {
2026-06-18T11:18:00.0848032Z         "doc": {
2026-06-18T11:18:00.0848131Z           "complete": false,
2026-06-18T11:18:00.0848213Z           "evidence": []
2026-06-18T11:18:00.0848289Z         },
2026-06-18T11:18:00.0848374Z         "impl": {
2026-06-18T11:18:00.0848479Z           "complete": true,
2026-06-18T11:18:00.0848581Z           "evidence": [
2026-06-18T11:18:00.0848665Z             {
2026-06-18T11:18:00.0848794Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T11:18:00.0848891Z               "line": 165
2026-06-18T11:18:00.0849052Z             },
2026-06-18T11:18:00.0849148Z             {
2026-06-18T11:18:00.0849271Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0849371Z               "line": 29
2026-06-18T11:18:00.0849472Z             },
2026-06-18T11:18:00.0849558Z             {
2026-06-18T11:18:00.0849690Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0849775Z               "line": 288
2026-06-18T11:18:00.0849857Z             },
2026-06-18T11:18:00.0849936Z             {
2026-06-18T11:18:00.0850063Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0850164Z               "line": 356
2026-06-18T11:18:00.0850241Z             },
2026-06-18T11:18:00.0850326Z             {
2026-06-18T11:18:00.0850440Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0850541Z               "line": 386
2026-06-18T11:18:00.0850636Z             },
2026-06-18T11:18:00.0850711Z             {
2026-06-18T11:18:00.0850842Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0851046Z               "line": 434
2026-06-18T11:18:00.0851137Z             },
2026-06-18T11:18:00.0851218Z             {
2026-06-18T11:18:00.0851323Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0851419Z               "line": 5235
2026-06-18T11:18:00.0851500Z             }
2026-06-18T11:18:00.0851584Z           ]
2026-06-18T11:18:00.0851661Z         },
2026-06-18T11:18:00.0851739Z         "int": {
2026-06-18T11:18:00.0851833Z           "complete": false,
2026-06-18T11:18:00.0851928Z           "evidence": []
2026-06-18T11:18:00.0852005Z         },
2026-06-18T11:18:00.0852087Z         "unit": {
2026-06-18T11:18:00.0852289Z           "complete": true,
2026-06-18T11:18:00.0852370Z           "evidence": [
2026-06-18T11:18:00.0852456Z             {
2026-06-18T11:18:00.0852587Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T11:18:00.0852683Z               "line": 375
2026-06-18T11:18:00.0852770Z             },
2026-06-18T11:18:00.0852855Z             {
2026-06-18T11:18:00.0852983Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0853065Z               "line": 808
2026-06-18T11:18:00.0853156Z             },
2026-06-18T11:18:00.0853235Z             {
2026-06-18T11:18:00.0853365Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0853494Z               "line": 849
2026-06-18T11:18:00.0853579Z             },
2026-06-18T11:18:00.0853666Z             {
2026-06-18T11:18:00.0853784Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0853879Z               "line": 869
2026-06-18T11:18:00.0853966Z             },
2026-06-18T11:18:00.0854066Z             {
2026-06-18T11:18:00.0854171Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0854261Z               "line": 8173
2026-06-18T11:18:00.0854348Z             }
2026-06-18T11:18:00.0854428Z           ]
2026-06-18T11:18:00.0854514Z         }
2026-06-18T11:18:00.0854596Z       }
2026-06-18T11:18:00.0854691Z     },
2026-06-18T11:18:00.0854775Z     {
2026-06-18T11:18:00.0854867Z       "id": "REQ-INSTALL-5",
2026-06-18T11:18:00.0855338Z       "title": "Non-interactive install path: the canonical one-liner doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration",
2026-06-18T11:18:00.0855442Z       "requiredStages": [
2026-06-18T11:18:00.0855533Z         "impl",
2026-06-18T11:18:00.0855615Z         "int"
2026-06-18T11:18:00.0855706Z       ],
2026-06-18T11:18:00.0855795Z       "stages": {
2026-06-18T11:18:00.0855882Z         "doc": {
2026-06-18T11:18:00.0855977Z           "complete": false,
2026-06-18T11:18:00.0856077Z           "evidence": []
2026-06-18T11:18:00.0856163Z         },
2026-06-18T11:18:00.0856249Z         "impl": {
2026-06-18T11:18:00.0856348Z           "complete": true,
2026-06-18T11:18:00.0856448Z           "evidence": [
2026-06-18T11:18:00.0856536Z             {
2026-06-18T11:18:00.0856644Z               "path": "installer/install.ps1",
2026-06-18T11:18:00.0856735Z               "line": 5
2026-06-18T11:18:00.0856826Z             },
2026-06-18T11:18:00.0856913Z             {
2026-06-18T11:18:00.0857025Z               "path": "installer/install.sh",
2026-06-18T11:18:00.0857121Z               "line": 6
2026-06-18T11:18:00.0857208Z             }
2026-06-18T11:18:00.0857288Z           ]
2026-06-18T11:18:00.0857368Z         },
2026-06-18T11:18:00.0857458Z         "int": {
2026-06-18T11:18:00.0857554Z           "complete": true,
2026-06-18T11:18:00.0857652Z           "evidence": [
2026-06-18T11:18:00.0857733Z             {
2026-06-18T11:18:00.0857857Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-18T11:18:00.0857962Z               "line": 22
2026-06-18T11:18:00.0858043Z             }
2026-06-18T11:18:00.0858124Z           ]
2026-06-18T11:18:00.0858201Z         },
2026-06-18T11:18:00.0858291Z         "unit": {
2026-06-18T11:18:00.0858386Z           "complete": false,
2026-06-18T11:18:00.0858468Z           "evidence": []
2026-06-18T11:18:00.0858739Z         }
2026-06-18T11:18:00.0858821Z       }
2026-06-18T11:18:00.0858906Z     },
2026-06-18T11:18:00.0859049Z     {
2026-06-18T11:18:00.0859150Z       "id": "REQ-INSTALL-6",
2026-06-18T11:18:00.0860325Z       "title": "Linux elevation install leg: install.sh symlinks the binary into a sudo-reachable path (/usr/local/bin; graceful print-the-one-liner when unelevated) so sudo spt resolves; first sudo spt detects elevation and prompts ONCE for the default user account — thereafter any elevated daemon launch runs daemon + state under that account, never root (KH 5.7 interplay verified) (M8 decision 8)",
2026-06-18T11:18:00.0860431Z       "requiredStages": [
2026-06-18T11:18:00.0860628Z         "impl",
2026-06-18T11:18:00.0860705Z         "unit"
2026-06-18T11:18:00.0860792Z       ],
2026-06-18T11:18:00.0860881Z       "stages": {
2026-06-18T11:18:00.0860962Z         "doc": {
2026-06-18T11:18:00.0861054Z           "complete": false,
2026-06-18T11:18:00.0861149Z           "evidence": []
2026-06-18T11:18:00.0861239Z         },
2026-06-18T11:18:00.0861330Z         "impl": {
2026-06-18T11:18:00.0861430Z           "complete": true,
2026-06-18T11:18:00.0861529Z           "evidence": [
2026-06-18T11:18:00.0861606Z             {
2026-06-18T11:18:00.0861731Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:18:00.0861816Z               "line": 61
2026-06-18T11:18:00.0861901Z             },
2026-06-18T11:18:00.0861989Z             {
2026-06-18T11:18:00.0862112Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:18:00.0862212Z               "line": 623
2026-06-18T11:18:00.0862294Z             },
2026-06-18T11:18:00.0862384Z             {
2026-06-18T11:18:00.0862517Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T11:18:00.0862613Z               "line": 191
2026-06-18T11:18:00.0862704Z             },
2026-06-18T11:18:00.0862779Z             {
2026-06-18T11:18:00.0862907Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T11:18:00.0862997Z               "line": 276
2026-06-18T11:18:00.0863091Z             },
2026-06-18T11:18:00.0863171Z             {
2026-06-18T11:18:00.0863282Z               "path": "crates/spt/src/main.rs",
2026-06-18T11:18:00.0863368Z               "line": 42
2026-06-18T11:18:00.0863467Z             },
2026-06-18T11:18:00.0863572Z             {
2026-06-18T11:18:00.0863678Z               "path": "installer/install.sh",
2026-06-18T11:18:00.0863777Z               "line": 104
2026-06-18T11:18:00.0863863Z             }
2026-06-18T11:18:00.0863959Z           ]
2026-06-18T11:18:00.0864054Z         },
2026-06-18T11:18:00.0864125Z         "int": {
2026-06-18T11:18:00.0864236Z           "complete": false,
2026-06-18T11:18:00.0864316Z           "evidence": []
2026-06-18T11:18:00.0864402Z         },
2026-06-18T11:18:00.0864483Z         "unit": {
2026-06-18T11:18:00.0864584Z           "complete": true,
2026-06-18T11:18:00.0864674Z           "evidence": [
2026-06-18T11:18:00.0864759Z             {
2026-06-18T11:18:00.0864898Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T11:18:00.0864988Z               "line": 866
2026-06-18T11:18:00.0865088Z             }
2026-06-18T11:18:00.0865185Z           ]
2026-06-18T11:18:00.0865275Z         }
2026-06-18T11:18:00.0865370Z       }
2026-06-18T11:18:00.0865461Z     },
2026-06-18T11:18:00.0865538Z     {
2026-06-18T11:18:00.0865632Z       "id": "REQ-INSTALL-7",
2026-06-18T11:18:00.0866723Z       "title": "Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-NetFirewallRule); the daemon self-detects blocked inbound and renders it as the no-connection state in subnet status + the coming-online banner (covers user-scope installs that skip the elevated leg — never a silent NO_SEED_HOLDER dead-end) (M8 root cause 3)",
2026-06-18T11:18:00.0866829Z       "requiredStages": [
2026-06-18T11:18:00.0866918Z         "impl"
2026-06-18T11:18:00.0867013Z       ],
2026-06-18T11:18:00.0867101Z       "stages": {
2026-06-18T11:18:00.0867304Z         "doc": {
2026-06-18T11:18:00.0867391Z           "complete": false,
2026-06-18T11:18:00.0867491Z           "evidence": []
2026-06-18T11:18:00.0867571Z         },
2026-06-18T11:18:00.0867652Z         "impl": {
2026-06-18T11:18:00.0867749Z           "complete": true,
2026-06-18T11:18:00.0867835Z           "evidence": [
2026-06-18T11:18:00.0867919Z             {
2026-06-18T11:18:00.0868023Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0868114Z               "line": 3778
2026-06-18T11:18:00.0868194Z             },
2026-06-18T11:18:00.0868284Z             {
2026-06-18T11:18:00.0868393Z               "path": "installer/install.ps1",
2026-06-18T11:18:00.0868555Z               "line": 157
2026-06-18T11:18:00.0868645Z             }
2026-06-18T11:18:00.0868722Z           ]
2026-06-18T11:18:00.0868808Z         },
2026-06-18T11:18:00.0868888Z         "int": {
2026-06-18T11:18:00.0869104Z           "complete": false,
2026-06-18T11:18:00.0869199Z           "evidence": []
2026-06-18T11:18:00.0869289Z         },
2026-06-18T11:18:00.0869376Z         "unit": {
2026-06-18T11:18:00.0869476Z           "complete": false,
2026-06-18T11:18:00.0869595Z           "evidence": []
2026-06-18T11:18:00.0869672Z         }
2026-06-18T11:18:00.0869762Z       }
2026-06-18T11:18:00.0869852Z     },
2026-06-18T11:18:00.0869924Z     {
2026-06-18T11:18:00.0870020Z       "id": "REQ-INSTALL-8",
2026-06-18T11:18:00.0871117Z       "title": "OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl enable-linger (linger rides the elevated install leg; daemon starts at boot pre-login, user universe per KH 5.7, systemctl --user managed); Windows scheduled task at-logon (interactive session, no stored credentials); a node is reachable after reboot without any manual spt invocation (M8 decision 17)",
2026-06-18T11:18:00.0871227Z       "requiredStages": [
2026-06-18T11:18:00.0871318Z         "impl"
2026-06-18T11:18:00.0871403Z       ],
2026-06-18T11:18:00.0871498Z       "stages": {
2026-06-18T11:18:00.0871585Z         "doc": {
2026-06-18T11:18:00.0871675Z           "complete": false,
2026-06-18T11:18:00.0871765Z           "evidence": []
2026-06-18T11:18:00.0871846Z         },
2026-06-18T11:18:00.0871929Z         "impl": {
2026-06-18T11:18:00.0872024Z           "complete": true,
2026-06-18T11:18:00.0872109Z           "evidence": [
2026-06-18T11:18:00.0872195Z             {
2026-06-18T11:18:00.0872300Z               "path": "installer/install.ps1",
2026-06-18T11:18:00.0872404Z               "line": 184
2026-06-18T11:18:00.0872485Z             },
2026-06-18T11:18:00.0872573Z             {
2026-06-18T11:18:00.0872681Z               "path": "installer/install.sh",
2026-06-18T11:18:00.0872781Z               "line": 121
2026-06-18T11:18:00.0872864Z             }
2026-06-18T11:18:00.0872949Z           ]
2026-06-18T11:18:00.0873034Z         },
2026-06-18T11:18:00.0873110Z         "int": {
2026-06-18T11:18:00.0873207Z           "complete": false,
2026-06-18T11:18:00.0873296Z           "evidence": []
2026-06-18T11:18:00.0873386Z         },
2026-06-18T11:18:00.0873472Z         "unit": {
2026-06-18T11:18:00.0873609Z           "complete": false,
2026-06-18T11:18:00.0873731Z           "evidence": []
2026-06-18T11:18:00.0873822Z         }
2026-06-18T11:18:00.0873914Z       }
2026-06-18T11:18:00.0873989Z     },
2026-06-18T11:18:00.0874065Z     {
2026-06-18T11:18:00.0874157Z       "id": "REQ-INSTALL-9",
2026-06-18T11:18:00.0875353Z       "title": "Adapter add from a GitHub release archive: `spt adapter add --release <user/repo> [--tag <tag>] [--asset <name>]` fetches a `.spt` tar asset over HTTPS+GitHub trust, extracts it to the durable adapters/_github home, and registers the root — ships built binaries source-free and versioned (the distribution path for an adapter whose dev repo is a monorepo subdir, where --github root-only clone does not fit)",
2026-06-18T11:18:00.0875454Z       "requiredStages": [
2026-06-18T11:18:00.0875534Z         "doc",
2026-06-18T11:18:00.0875615Z         "impl",
2026-06-18T11:18:00.0875816Z         "unit"
2026-06-18T11:18:00.0875896Z       ],
2026-06-18T11:18:00.0875982Z       "stages": {
2026-06-18T11:18:00.0876065Z         "doc": {
2026-06-18T11:18:00.0876154Z           "complete": true,
2026-06-18T11:18:00.0876239Z           "evidence": [
2026-06-18T11:18:00.0876334Z             {
2026-06-18T11:18:00.0876430Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.0876525Z               "line": 749
2026-06-18T11:18:00.0876610Z             }
2026-06-18T11:18:00.0876692Z           ]
2026-06-18T11:18:00.0876783Z         },
2026-06-18T11:18:00.0876897Z         "impl": {
2026-06-18T11:18:00.0876987Z           "complete": true,
2026-06-18T11:18:00.0877174Z           "evidence": [
2026-06-18T11:18:00.0877268Z             {
2026-06-18T11:18:00.0877379Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0877464Z               "line": 2406
2026-06-18T11:18:00.0877559Z             },
2026-06-18T11:18:00.0877646Z             {
2026-06-18T11:18:00.0877760Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0877846Z               "line": 2430
2026-06-18T11:18:00.0877922Z             }
2026-06-18T11:18:00.0878013Z           ]
2026-06-18T11:18:00.0878099Z         },
2026-06-18T11:18:00.0878194Z         "int": {
2026-06-18T11:18:00.0878285Z           "complete": false,
2026-06-18T11:18:00.0878376Z           "evidence": []
2026-06-18T11:18:00.0878455Z         },
2026-06-18T11:18:00.0878536Z         "unit": {
2026-06-18T11:18:00.0878627Z           "complete": true,
2026-06-18T11:18:00.0878721Z           "evidence": [
2026-06-18T11:18:00.0878810Z             {
2026-06-18T11:18:00.0878905Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0879064Z               "line": 7430
2026-06-18T11:18:00.0879139Z             },
2026-06-18T11:18:00.0879225Z             {
2026-06-18T11:18:00.0879331Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0879435Z               "line": 8203
2026-06-18T11:18:00.0879516Z             }
2026-06-18T11:18:00.0879603Z           ]
2026-06-18T11:18:00.0879697Z         }
2026-06-18T11:18:00.0879778Z       }
2026-06-18T11:18:00.0879874Z     },
2026-06-18T11:18:00.0879956Z     {
2026-06-18T11:18:00.0880051Z       "id": "REQ-KICK-1",
2026-06-18T11:18:00.0882470Z       "title": "Explicit, loud controller displacement: `spt rc kick <target>` / `--take` (Take intent) kicks the incumbent controller and becomes controller; the displaced controller receives a LOUD `Displaced{by}` notice and is FULLY DETACHED (not demoted to a viewer). A default attach to a controlled endpoint is NEVER a silent displace (it is the Control busy-refusal). An old (N-1) rc omits intent → Control, so it can drive a free endpoint but CANNOT `--take` — it can never silently steal, and gets a clean busy-refusal instead. Taking control rides the same access_check(endpoint, origin, Unsolicited) as a normal control attach (if you may drive, you may take — no elevated kick policy). The picker surfaces 'Kick <node> and attach' (Take) only on a controlled (blue ■) endpoint, via the existing attach dispatch (single-bringup-path: intent is a parameter).",
2026-06-18T11:18:00.0882598Z       "requiredStages": [
2026-06-18T11:18:00.0882683Z         "doc",
2026-06-18T11:18:00.0882770Z         "impl",
2026-06-18T11:18:00.0882860Z         "unit",
2026-06-18T11:18:00.0882941Z         "int"
2026-06-18T11:18:00.0883027Z       ],
2026-06-18T11:18:00.0886104Z       "stages": {
2026-06-18T11:18:00.0886227Z         "doc": {
2026-06-18T11:18:00.0886348Z           "complete": true,
2026-06-18T11:18:00.0886442Z           "evidence": [
2026-06-18T11:18:00.0886528Z             {
2026-06-18T11:18:00.0886635Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.0886747Z               "line": 342
2026-06-18T11:18:00.0886841Z             }
2026-06-18T11:18:00.0886932Z           ]
2026-06-18T11:18:00.0887014Z         },
2026-06-18T11:18:00.0887109Z         "impl": {
2026-06-18T11:18:00.0887199Z           "complete": true,
2026-06-18T11:18:00.0887290Z           "evidence": [
2026-06-18T11:18:00.0887504Z             {
2026-06-18T11:18:00.0887639Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-18T11:18:00.0887739Z               "line": 41
2026-06-18T11:18:00.0887818Z             },
2026-06-18T11:18:00.0887911Z             {
2026-06-18T11:18:00.0888025Z               "path": "crates/spt/src/rc.rs",
2026-06-18T11:18:00.0888110Z               "line": 181
2026-06-18T11:18:00.0888196Z             }
2026-06-18T11:18:00.0888278Z           ]
2026-06-18T11:18:00.0888358Z         },
2026-06-18T11:18:00.0888439Z         "int": {
2026-06-18T11:18:00.0888531Z           "complete": true,
2026-06-18T11:18:00.0888626Z           "evidence": [
2026-06-18T11:18:00.0888811Z             {
2026-06-18T11:18:00.0888940Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T11:18:00.0889239Z               "line": 791
2026-06-18T11:18:00.0889323Z             }
2026-06-18T11:18:00.0889408Z           ]
2026-06-18T11:18:00.0889499Z         },
2026-06-18T11:18:00.0889600Z         "unit": {
2026-06-18T11:18:00.0889704Z           "complete": true,
2026-06-18T11:18:00.0889794Z           "evidence": [
2026-06-18T11:18:00.0889877Z             {
2026-06-18T11:18:00.0890000Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-18T11:18:00.0890100Z               "line": 205
2026-06-18T11:18:00.0890182Z             }
2026-06-18T11:18:00.0890272Z           ]
2026-06-18T11:18:00.0890352Z         }
2026-06-18T11:18:00.0890439Z       }
2026-06-18T11:18:00.0890530Z     },
2026-06-18T11:18:00.0890620Z     {
2026-06-18T11:18:00.0890710Z       "id": "REQ-MANIFEST-1",
2026-06-18T11:18:00.0890910Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-18T11:18:00.0891015Z       "requiredStages": [
2026-06-18T11:18:00.0891107Z         "doc",
2026-06-18T11:18:00.0891183Z         "impl",
2026-06-18T11:18:00.0891273Z         "unit"
2026-06-18T11:18:00.0891354Z       ],
2026-06-18T11:18:00.0891441Z       "stages": {
2026-06-18T11:18:00.0891521Z         "doc": {
2026-06-18T11:18:00.0891630Z           "complete": true,
2026-06-18T11:18:00.0891727Z           "evidence": [
2026-06-18T11:18:00.0891808Z             {
2026-06-18T11:18:00.0891925Z               "path": "docs/MANIFEST.md",
2026-06-18T11:18:00.0892020Z               "line": 19
2026-06-18T11:18:00.0892106Z             }
2026-06-18T11:18:00.0892186Z           ]
2026-06-18T11:18:00.0892275Z         },
2026-06-18T11:18:00.0892376Z         "impl": {
2026-06-18T11:18:00.0892467Z           "complete": true,
2026-06-18T11:18:00.0892552Z           "evidence": [
2026-06-18T11:18:00.0892638Z             {
2026-06-18T11:18:00.0892767Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0892867Z               "line": 18
2026-06-18T11:18:00.0892952Z             }
2026-06-18T11:18:00.0893035Z           ]
2026-06-18T11:18:00.0893115Z         },
2026-06-18T11:18:00.0893196Z         "int": {
2026-06-18T11:18:00.0893301Z           "complete": false,
2026-06-18T11:18:00.0893392Z           "evidence": []
2026-06-18T11:18:00.0893482Z         },
2026-06-18T11:18:00.0893568Z         "unit": {
2026-06-18T11:18:00.0893669Z           "complete": true,
2026-06-18T11:18:00.0893759Z           "evidence": [
2026-06-18T11:18:00.0893844Z             {
2026-06-18T11:18:00.0893974Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0894069Z               "line": 970
2026-06-18T11:18:00.0894149Z             },
2026-06-18T11:18:00.0894221Z             {
2026-06-18T11:18:00.0894342Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0894426Z               "line": 1122
2026-06-18T11:18:00.0894525Z             },
2026-06-18T11:18:00.0894616Z             {
2026-06-18T11:18:00.0894734Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0894828Z               "line": 1134
2026-06-18T11:18:00.0894914Z             },
2026-06-18T11:18:00.0894995Z             {
2026-06-18T11:18:00.0895109Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0895324Z               "line": 1145
2026-06-18T11:18:00.0895415Z             },
2026-06-18T11:18:00.0895491Z             {
2026-06-18T11:18:00.0895621Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0895706Z               "line": 1162
2026-06-18T11:18:00.0895791Z             },
2026-06-18T11:18:00.0895873Z             {
2026-06-18T11:18:00.0895996Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0896082Z               "line": 1176
2026-06-18T11:18:00.0896172Z             },
2026-06-18T11:18:00.0896250Z             {
2026-06-18T11:18:00.0896373Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0896565Z               "line": 1292
2026-06-18T11:18:00.0896654Z             },
2026-06-18T11:18:00.0896745Z             {
2026-06-18T11:18:00.0896875Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0896959Z               "line": 1307
2026-06-18T11:18:00.0897040Z             },
2026-06-18T11:18:00.0897122Z             {
2026-06-18T11:18:00.0897246Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0897340Z               "line": 1418
2026-06-18T11:18:00.0897430Z             },
2026-06-18T11:18:00.0897517Z             {
2026-06-18T11:18:00.0897631Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0897730Z               "line": 1429
2026-06-18T11:18:00.0897812Z             }
2026-06-18T11:18:00.0897894Z           ]
2026-06-18T11:18:00.0897988Z         }
2026-06-18T11:18:00.0898069Z       }
2026-06-18T11:18:00.0898161Z     },
2026-06-18T11:18:00.0898232Z     {
2026-06-18T11:18:00.0898331Z       "id": "REQ-MANIFEST-2",
2026-06-18T11:18:00.0898876Z       "title": "Adapter profiles — sparse leaf-replace overlays (shipped + local), composite <adapter>:<profile> addressing, shadow-refusal, tighten-only consent floors",
2026-06-18T11:18:00.0899052Z       "requiredStages": [
2026-06-18T11:18:00.0899143Z         "doc",
2026-06-18T11:18:00.0899237Z         "impl",
2026-06-18T11:18:00.0899333Z         "unit"
2026-06-18T11:18:00.0899415Z       ],
2026-06-18T11:18:00.0899500Z       "stages": {
2026-06-18T11:18:00.0899590Z         "doc": {
2026-06-18T11:18:00.0899689Z           "complete": true,
2026-06-18T11:18:00.0899789Z           "evidence": [
2026-06-18T11:18:00.0899874Z             {
2026-06-18T11:18:00.0899978Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.0900064Z               "line": 75
2026-06-18T11:18:00.0900160Z             }
2026-06-18T11:18:00.0900236Z           ]
2026-06-18T11:18:00.0900316Z         },
2026-06-18T11:18:00.0900412Z         "impl": {
2026-06-18T11:18:00.0900503Z           "complete": true,
2026-06-18T11:18:00.0900607Z           "evidence": [
2026-06-18T11:18:00.0900684Z             {
2026-06-18T11:18:00.0900817Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0900898Z               "line": 62
2026-06-18T11:18:00.0900984Z             },
2026-06-18T11:18:00.0901080Z             {
2026-06-18T11:18:00.0901199Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T11:18:00.0901290Z               "line": 15
2026-06-18T11:18:00.0901376Z             },
2026-06-18T11:18:00.0901466Z             {
2026-06-18T11:18:00.0901580Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T11:18:00.0901667Z               "line": 65
2026-06-18T11:18:00.0901766Z             },
2026-06-18T11:18:00.0901848Z             {
2026-06-18T11:18:00.0901968Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T11:18:00.0902053Z               "line": 83
2026-06-18T11:18:00.0902138Z             },
2026-06-18T11:18:00.0902219Z             {
2026-06-18T11:18:00.0902340Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T11:18:00.0902429Z               "line": 183
2026-06-18T11:18:00.0902519Z             },
2026-06-18T11:18:00.0902609Z             {
2026-06-18T11:18:00.0902723Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0902927Z               "line": 527
2026-06-18T11:18:00.0903018Z             },
2026-06-18T11:18:00.0903098Z             {
2026-06-18T11:18:00.0903217Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0903294Z               "line": 553
2026-06-18T11:18:00.0903390Z             },
2026-06-18T11:18:00.0903474Z             {
2026-06-18T11:18:00.0903599Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0903689Z               "line": 671
2026-06-18T11:18:00.0903775Z             },
2026-06-18T11:18:00.0903861Z             {
2026-06-18T11:18:00.0903976Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0904162Z               "line": 696
2026-06-18T11:18:00.0904234Z             },
2026-06-18T11:18:00.0904324Z             {
2026-06-18T11:18:00.0904442Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0904530Z               "line": 719
2026-06-18T11:18:00.0904601Z             },
2026-06-18T11:18:00.0904695Z             {
2026-06-18T11:18:00.0904815Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0904902Z               "line": 734
2026-06-18T11:18:00.0904981Z             },
2026-06-18T11:18:00.0905071Z             {
2026-06-18T11:18:00.0905171Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0905266Z               "line": 5406
2026-06-18T11:18:00.0905350Z             },
2026-06-18T11:18:00.0905431Z             {
2026-06-18T11:18:00.0905527Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0905623Z               "line": 5420
2026-06-18T11:18:00.0905707Z             },
2026-06-18T11:18:00.0905789Z             {
2026-06-18T11:18:00.0905899Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0905989Z               "line": 5454
2026-06-18T11:18:00.0906075Z             }
2026-06-18T11:18:00.0906152Z           ]
2026-06-18T11:18:00.0906237Z         },
2026-06-18T11:18:00.0906322Z         "int": {
2026-06-18T11:18:00.0906423Z           "complete": false,
2026-06-18T11:18:00.0906519Z           "evidence": []
2026-06-18T11:18:00.0906599Z         },
2026-06-18T11:18:00.0906685Z         "unit": {
2026-06-18T11:18:00.0906776Z           "complete": true,
2026-06-18T11:18:00.0906871Z           "evidence": [
2026-06-18T11:18:00.0906962Z             {
2026-06-18T11:18:00.0907082Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T11:18:00.0907177Z               "line": 921
2026-06-18T11:18:00.0907252Z             },
2026-06-18T11:18:00.0907329Z             {
2026-06-18T11:18:00.0907454Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T11:18:00.0907538Z               "line": 211
2026-06-18T11:18:00.0907634Z             },
2026-06-18T11:18:00.0907716Z             {
2026-06-18T11:18:00.0907839Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T11:18:00.0907934Z               "line": 272
2026-06-18T11:18:00.0908024Z             },
2026-06-18T11:18:00.0908091Z             {
2026-06-18T11:18:00.0908224Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T11:18:00.0908319Z               "line": 313
2026-06-18T11:18:00.0908411Z             },
2026-06-18T11:18:00.0908492Z             {
2026-06-18T11:18:00.0908610Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T11:18:00.0908707Z               "line": 325
2026-06-18T11:18:00.0908782Z             },
2026-06-18T11:18:00.0908877Z             {
2026-06-18T11:18:00.0909064Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T11:18:00.0909149Z               "line": 336
2026-06-18T11:18:00.0909244Z             },
2026-06-18T11:18:00.0909326Z             {
2026-06-18T11:18:00.0909450Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T11:18:00.0909545Z               "line": 345
2026-06-18T11:18:00.0909641Z             },
2026-06-18T11:18:00.0909722Z             {
2026-06-18T11:18:00.0909835Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T11:18:00.0910023Z               "line": 361
2026-06-18T11:18:00.0910102Z             },
2026-06-18T11:18:00.0910197Z             {
2026-06-18T11:18:00.0910312Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T11:18:00.0910401Z               "line": 444
2026-06-18T11:18:00.0910472Z             },
2026-06-18T11:18:00.0910562Z             {
2026-06-18T11:18:00.0910677Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0910762Z               "line": 958
2026-06-18T11:18:00.0910852Z             },
2026-06-18T11:18:00.0910944Z             {
2026-06-18T11:18:00.0911063Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0911254Z               "line": 982
2026-06-18T11:18:00.0911340Z             },
2026-06-18T11:18:00.0911425Z             {
2026-06-18T11:18:00.0911540Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0911631Z               "line": 1008
2026-06-18T11:18:00.0911721Z             },
2026-06-18T11:18:00.0911802Z             {
2026-06-18T11:18:00.0911913Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0912002Z               "line": 1027
2026-06-18T11:18:00.0912088Z             },
2026-06-18T11:18:00.0912169Z             {
2026-06-18T11:18:00.0912298Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0912383Z               "line": 1058
2026-06-18T11:18:00.0912469Z             },
2026-06-18T11:18:00.0912552Z             {
2026-06-18T11:18:00.0912665Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T11:18:00.0912760Z               "line": 309
2026-06-18T11:18:00.0912837Z             },
2026-06-18T11:18:00.0912933Z             {
2026-06-18T11:18:00.0913045Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T11:18:00.0913136Z               "line": 606
2026-06-18T11:18:00.0913217Z             },
2026-06-18T11:18:00.0913301Z             {
2026-06-18T11:18:00.0913410Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0913501Z               "line": 8380
2026-06-18T11:18:00.0913583Z             },
2026-06-18T11:18:00.0913668Z             {
2026-06-18T11:18:00.0913772Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0913859Z               "line": 9328
2026-06-18T11:18:00.0913945Z             }
2026-06-18T11:18:00.0914030Z           ]
2026-06-18T11:18:00.0914116Z         }
2026-06-18T11:18:00.0914198Z       }
2026-06-18T11:18:00.0914279Z     },
2026-06-18T11:18:00.0914354Z     {
2026-06-18T11:18:00.0914460Z       "id": "REQ-MANIFEST-3",
2026-06-18T11:18:00.0915099Z       "title": "Adapter strings — [strings] KV tree, dot-path get-string resolving through the profile leaf-replace overlay, set-string editing a local profile's [strings] only; data-only (nothing executes a string)",
2026-06-18T11:18:00.0915204Z       "requiredStages": [
2026-06-18T11:18:00.0915294Z         "doc",
2026-06-18T11:18:00.0915385Z         "impl",
2026-06-18T11:18:00.0915467Z         "unit"
2026-06-18T11:18:00.0915546Z       ],
2026-06-18T11:18:00.0915641Z       "stages": {
2026-06-18T11:18:00.0915727Z         "doc": {
2026-06-18T11:18:00.0915826Z           "complete": true,
2026-06-18T11:18:00.0915924Z           "evidence": [
2026-06-18T11:18:00.0916000Z             {
2026-06-18T11:18:00.0916101Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.0916193Z               "line": 81
2026-06-18T11:18:00.0916296Z             }
2026-06-18T11:18:00.0916382Z           ]
2026-06-18T11:18:00.0916468Z         },
2026-06-18T11:18:00.0916554Z         "impl": {
2026-06-18T11:18:00.0916644Z           "complete": true,
2026-06-18T11:18:00.0916746Z           "evidence": [
2026-06-18T11:18:00.0916831Z             {
2026-06-18T11:18:00.0916968Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0917060Z               "line": 72
2026-06-18T11:18:00.0917140Z             },
2026-06-18T11:18:00.0917225Z             {
2026-06-18T11:18:00.0917346Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T11:18:00.0917508Z               "line": 101
2026-06-18T11:18:00.0917598Z             },
2026-06-18T11:18:00.0917680Z             {
2026-06-18T11:18:00.0917798Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T11:18:00.0917894Z               "line": 132
2026-06-18T11:18:00.0917971Z             },
2026-06-18T11:18:00.0918052Z             {
2026-06-18T11:18:00.0918175Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0918257Z               "line": 577
2026-06-18T11:18:00.0918353Z             },
2026-06-18T11:18:00.0918437Z             {
2026-06-18T11:18:00.0918555Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0918738Z               "line": 633
2026-06-18T11:18:00.0918822Z             },
2026-06-18T11:18:00.0918918Z             {
2026-06-18T11:18:00.0919108Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0919199Z               "line": 5467
2026-06-18T11:18:00.0919281Z             },
2026-06-18T11:18:00.0919386Z             {
2026-06-18T11:18:00.0919485Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0919586Z               "line": 5493
2026-06-18T11:18:00.0919695Z             }
2026-06-18T11:18:00.0919780Z           ]
2026-06-18T11:18:00.0919867Z         },
2026-06-18T11:18:00.0919954Z         "int": {
2026-06-18T11:18:00.0920048Z           "complete": false,
2026-06-18T11:18:00.0920143Z           "evidence": []
2026-06-18T11:18:00.0920221Z         },
2026-06-18T11:18:00.0920311Z         "unit": {
2026-06-18T11:18:00.0920401Z           "complete": true,
2026-06-18T11:18:00.0920496Z           "evidence": [
2026-06-18T11:18:00.0920579Z             {
2026-06-18T11:18:00.0920710Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T11:18:00.0920805Z               "line": 371
2026-06-18T11:18:00.0920891Z             },
2026-06-18T11:18:00.0920971Z             {
2026-06-18T11:18:00.0921088Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T11:18:00.0921184Z               "line": 429
2026-06-18T11:18:00.0921271Z             },
2026-06-18T11:18:00.0921361Z             {
2026-06-18T11:18:00.0921489Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0921581Z               "line": 1082
2026-06-18T11:18:00.0921661Z             },
2026-06-18T11:18:00.0921737Z             {
2026-06-18T11:18:00.0921843Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.0921924Z               "line": 8473
2026-06-18T11:18:00.0922014Z             }
2026-06-18T11:18:00.0922095Z           ]
2026-06-18T11:18:00.0922172Z         }
2026-06-18T11:18:00.0922272Z       }
2026-06-18T11:18:00.0922352Z     },
2026-06-18T11:18:00.0922448Z     {
2026-06-18T11:18:00.0922548Z       "id": "REQ-MANIFEST-4",
2026-06-18T11:18:00.0923239Z       "title": "Keyword hints — [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one matched hint per message, once per session (seen-set), declaration-order first match; profiles overlay [[hints]] by leaf-replace",
2026-06-18T11:18:00.0923344Z       "requiredStages": [
2026-06-18T11:18:00.0923427Z         "doc",
2026-06-18T11:18:00.0923516Z         "impl",
2026-06-18T11:18:00.0923601Z         "unit"
2026-06-18T11:18:00.0923691Z       ],
2026-06-18T11:18:00.0923777Z       "stages": {
2026-06-18T11:18:00.0923866Z         "doc": {
2026-06-18T11:18:00.0923965Z           "complete": true,
2026-06-18T11:18:00.0924056Z           "evidence": [
2026-06-18T11:18:00.0924143Z             {
2026-06-18T11:18:00.0924247Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.0924342Z               "line": 88
2026-06-18T11:18:00.0924434Z             }
2026-06-18T11:18:00.0924519Z           ]
2026-06-18T11:18:00.0924618Z         },
2026-06-18T11:18:00.0924706Z         "impl": {
2026-06-18T11:18:00.0924796Z           "complete": true,
2026-06-18T11:18:00.0924890Z           "evidence": [
2026-06-18T11:18:00.0924972Z             {
2026-06-18T11:18:00.0925101Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0925301Z               "line": 80
2026-06-18T11:18:00.0925397Z             },
2026-06-18T11:18:00.0925486Z             {
2026-06-18T11:18:00.0925611Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0925697Z               "line": 163
2026-06-18T11:18:00.0925787Z             },
2026-06-18T11:18:00.0925878Z             {
2026-06-18T11:18:00.0925989Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0926083Z               "line": 83
2026-06-18T11:18:00.0926172Z             },
2026-06-18T11:18:00.0926262Z             {
2026-06-18T11:18:00.0926386Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.0926589Z               "line": 625
2026-06-18T11:18:00.0926686Z             },
2026-06-18T11:18:00.0926771Z             {
2026-06-18T11:18:00.0926894Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.0926991Z               "line": 650
2026-06-18T11:18:00.0927082Z             }
2026-06-18T11:18:00.0927166Z           ]
2026-06-18T11:18:00.0927253Z         },
2026-06-18T11:18:00.0927348Z         "int": {
2026-06-18T11:18:00.0927452Z           "complete": false,
2026-06-18T11:18:00.0927548Z           "evidence": []
2026-06-18T11:18:00.0927630Z         },
2026-06-18T11:18:00.0927719Z         "unit": {
2026-06-18T11:18:00.0927819Z           "complete": true,
2026-06-18T11:18:00.0927921Z           "evidence": [
2026-06-18T11:18:00.0928011Z             {
2026-06-18T11:18:00.0928134Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0928231Z               "line": 1242
2026-06-18T11:18:00.0928316Z             },
2026-06-18T11:18:00.0928402Z             {
2026-06-18T11:18:00.0928532Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0928636Z               "line": 1275
2026-06-18T11:18:00.0928716Z             },
2026-06-18T11:18:00.0928807Z             {
2026-06-18T11:18:00.0928932Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.0929096Z               "line": 984
2026-06-18T11:18:00.0929178Z             }
2026-06-18T11:18:00.0929254Z           ]
2026-06-18T11:18:00.0929340Z         }
2026-06-18T11:18:00.0929425Z       }
2026-06-18T11:18:00.0929511Z     },
2026-06-18T11:18:00.0929612Z     {
2026-06-18T11:18:00.0929711Z       "id": "REQ-MANIFEST-5",
2026-06-18T11:18:00.0932531Z       "title": "File-backed adapter [strings] (M12-W3-T3.1): a [strings] dot-path value MAY be an inline-table FILE POINTER `key = { file = \"rel/path\" }` resolved to the file's contents at get-string time, keeping large bodies (skill-instructions, hint text) out of the manifest. A value-position table with a `file` key IS the pointer form (reserved — cannot double as data). Per-adapter aux storage `adapters/<adapter>/strings/`; pointers resolve relative to it with CONTAINMENT (reject `..`/absolute escaping the dir). UPDATE-SAFETY: a LOCAL profile's file-pointers resolve relative to the user-owned local-profile dir (NOT adapter-shipped strings/, which adapter updates overwrite), or the local profile inlines. Validate-at-register (fail-fast on a bad/escaping/missing pointer) + LAZY read at get-string (live file edits reflect, no re-register) + skip-diagnostics on missing-at-read (no hard-crash, mirrors [digest]). Rides the same leaf-replace profile overlay as the rest of [strings].",
2026-06-18T11:18:00.0932660Z       "requiredStages": [
2026-06-18T11:18:00.0932746Z         "doc",
2026-06-18T11:18:00.0932837Z         "impl",
2026-06-18T11:18:00.0932917Z         "unit"
2026-06-18T11:18:00.0932999Z       ],
2026-06-18T11:18:00.0933094Z       "stages": {
2026-06-18T11:18:00.0933180Z         "doc": {
2026-06-18T11:18:00.0933279Z           "complete": true,
2026-06-18T11:18:00.0933367Z           "evidence": [
2026-06-18T11:18:00.0933461Z             {
2026-06-18T11:18:00.0933561Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.0933653Z               "line": 83
2026-06-18T11:18:00.0933747Z             }
2026-06-18T11:18:00.0933828Z           ]
2026-06-18T11:18:00.0934029Z         },
2026-06-18T11:18:00.0934109Z         "impl": {
2026-06-18T11:18:00.0934203Z           "complete": true,
2026-06-18T11:18:00.0934294Z           "evidence": [
2026-06-18T11:18:00.0934379Z             {
2026-06-18T11:18:00.0934516Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T11:18:00.0934611Z               "line": 120
2026-06-18T11:18:00.0934693Z             }
2026-06-18T11:18:00.0934778Z           ]
2026-06-18T11:18:00.0934873Z         },
2026-06-18T11:18:00.0934965Z         "int": {
2026-06-18T11:18:00.0935055Z           "complete": false,
2026-06-18T11:18:00.0935150Z           "evidence": []
2026-06-18T11:18:00.0935227Z         },
2026-06-18T11:18:00.0935422Z         "unit": {
2026-06-18T11:18:00.0935507Z           "complete": true,
2026-06-18T11:18:00.0935609Z           "evidence": [
2026-06-18T11:18:00.0935699Z             {
2026-06-18T11:18:00.0935822Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T11:18:00.0935924Z               "line": 404
2026-06-18T11:18:00.0936023Z             },
2026-06-18T11:18:00.0936109Z             {
2026-06-18T11:18:00.0936234Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0936333Z               "line": 1155
2026-06-18T11:18:00.0936424Z             },
2026-06-18T11:18:00.0936510Z             {
2026-06-18T11:18:00.0936629Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0936723Z               "line": 1184
2026-06-18T11:18:00.0936813Z             },
2026-06-18T11:18:00.0936899Z             {
2026-06-18T11:18:00.0937016Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0937111Z               "line": 1224
2026-06-18T11:18:00.0937193Z             },
2026-06-18T11:18:00.0937279Z             {
2026-06-18T11:18:00.0937397Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0937498Z               "line": 1239
2026-06-18T11:18:00.0937584Z             }
2026-06-18T11:18:00.0937670Z           ]
2026-06-18T11:18:00.0937760Z         }
2026-06-18T11:18:00.0937846Z       }
2026-06-18T11:18:00.0937932Z     },
2026-06-18T11:18:00.0938022Z     {
2026-06-18T11:18:00.0938123Z       "id": "REQ-MANIFEST-6",
2026-06-18T11:18:00.0940257Z       "title": "Cross-adapter fallback target addressing (M12-W3-T3.2): a cross-adapter fallback target is addressed as `<adapter>:<profile>` (not just a bare adapter_name), resolved through the one composite-addressing resolver (registry::resolve_option) at every adapter-option read site so a fallback may select a shipped/local profile (e.g. a `ccs` profile). CONTEXT.md §cross-adapter-fallback reconciled (\"ccs is a profile; cross-adapter fallback may target <adapter>:<profile>\"). Contract-only this milestone: the node-wide fallback SETTING + its rate-limit invocation are deferred to the consuming milestone (the runtime path does not exist yet); this REQ guarantees the ADDRESSING resolves.",
2026-06-18T11:18:00.0940377Z       "requiredStages": [
2026-06-18T11:18:00.0940468Z         "doc",
2026-06-18T11:18:00.0940563Z         "unit"
2026-06-18T11:18:00.0940648Z       ],
2026-06-18T11:18:00.0940750Z       "stages": {
2026-06-18T11:18:00.0940839Z         "doc": {
2026-06-18T11:18:00.0940929Z           "complete": true,
2026-06-18T11:18:00.0941026Z           "evidence": [
2026-06-18T11:18:00.0941102Z             {
2026-06-18T11:18:00.0941206Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.0941292Z               "line": 141
2026-06-18T11:18:00.0941384Z             }
2026-06-18T11:18:00.0941459Z           ]
2026-06-18T11:18:00.0941544Z         },
2026-06-18T11:18:00.0941636Z         "impl": {
2026-06-18T11:18:00.0941732Z           "complete": false,
2026-06-18T11:18:00.0941830Z           "evidence": []
2026-06-18T11:18:00.0941915Z         },
2026-06-18T11:18:00.0942006Z         "int": {
2026-06-18T11:18:00.0942096Z           "complete": false,
2026-06-18T11:18:00.0942195Z           "evidence": []
2026-06-18T11:18:00.0942281Z         },
2026-06-18T11:18:00.0942367Z         "unit": {
2026-06-18T11:18:00.0942576Z           "complete": true,
2026-06-18T11:18:00.0942663Z           "evidence": [
2026-06-18T11:18:00.0942749Z             {
2026-06-18T11:18:00.0942881Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.0942978Z               "line": 1261
2026-06-18T11:18:00.0943068Z             }
2026-06-18T11:18:00.0943143Z           ]
2026-06-18T11:18:00.0943230Z         }
2026-06-18T11:18:00.0943312Z       }
2026-06-18T11:18:00.0943402Z     },
2026-06-18T11:18:00.0943482Z     {
2026-06-18T11:18:00.0943583Z       "id": "REQ-MANIFEST-7",
2026-06-18T11:18:00.0946526Z       "title": "Adapter-declared shortcut basename (M12-W2 follow-on): an optional `[adapter] shortcut_basename` manifest field names the basename the `spt endpoint run` picker bakes into the generated `<basename>-<id>` launcher shortcut (REQ-RUN-SHORTCUT). Absent ⇒ the harness-agnostic default `spt` (→ `spt-<id>`); an adapter sets it to brand its shortcuts (claude-spt → `cc` → `cc-<id>`), so the Claude-Code-ness lives in the PUBLISHED adapter manifest, never hardcoded in spt-core. The picker reads it from the RESOLVED manifest of the selected adapter (registry::resolve_option), falling back to `spt` when absent/empty/unresolvable. Additive + N-1-safe (serde-default Option, omitted from serialization when absent; old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). Documented in docs/MANIFEST.md `[adapter]` section + the claude-spt worked example — the adapter-author contract perri builds spt-claude-code against.",
2026-06-18T11:18:00.0946731Z       "requiredStages": [
2026-06-18T11:18:00.0946822Z         "doc",
2026-06-18T11:18:00.0946926Z         "impl",
2026-06-18T11:18:00.0947012Z         "unit"
2026-06-18T11:18:00.0947109Z       ],
2026-06-18T11:18:00.0947203Z       "stages": {
2026-06-18T11:18:00.0947293Z         "doc": {
2026-06-18T11:18:00.0947392Z           "complete": true,
2026-06-18T11:18:00.0947488Z           "evidence": [
2026-06-18T11:18:00.0947591Z             {
2026-06-18T11:18:00.0947685Z               "path": "docs/MANIFEST.md",
2026-06-18T11:18:00.0947786Z               "line": 35
2026-06-18T11:18:00.0947877Z             }
2026-06-18T11:18:00.0947957Z           ]
2026-06-18T11:18:00.0948048Z         },
2026-06-18T11:18:00.0948130Z         "impl": {
2026-06-18T11:18:00.0948230Z           "complete": true,
2026-06-18T11:18:00.0948315Z           "evidence": [
2026-06-18T11:18:00.0948397Z             {
2026-06-18T11:18:00.0948525Z               "path": "crates/spt/src/picker/data.rs",
2026-06-18T11:18:00.0948620Z               "line": 54
2026-06-18T11:18:00.0948698Z             }
2026-06-18T11:18:00.0948783Z           ]
2026-06-18T11:18:00.0948883Z         },
2026-06-18T11:18:00.0949032Z         "int": {
2026-06-18T11:18:00.0949136Z           "complete": false,
2026-06-18T11:18:00.0949231Z           "evidence": []
2026-06-18T11:18:00.0949322Z         },
2026-06-18T11:18:00.0949441Z         "unit": {
2026-06-18T11:18:00.0949532Z           "complete": true,
2026-06-18T11:18:00.0949652Z           "evidence": [
2026-06-18T11:18:00.0949737Z             {
2026-06-18T11:18:00.0949875Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0949976Z               "line": 1435
2026-06-18T11:18:00.0950061Z             }
2026-06-18T11:18:00.0950141Z           ]
2026-06-18T11:18:00.0950231Z         }
2026-06-18T11:18:00.0950322Z       }
2026-06-18T11:18:00.0950404Z     },
2026-06-18T11:18:00.0950502Z     {
2026-06-18T11:18:00.0950603Z       "id": "REQ-MANIFEST-8",
2026-06-18T11:18:00.0952712Z       "title": "[adapter] host_binaries declares the harness executable basenames a kind=\"harness\" adapter hosts agents inside (e.g. host_binaries = [\"claude\"]); bind-time pid→exe-basename match (case-insensitive, .exe-stripped) over the seed's parent_pid selects the candidate adapter set; zero matches → a friendly error naming the binary + the --adapter escape hatch. Additive + N-1-safe: optional Vec<String>, #[serde(default, skip_serializing_if = \"Vec::is_empty\")] (omitted-serialized like shortcut_basename, old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). The match-key for ADR-0021 adapter-agnostic bind-time resolution. (v0.9.0)",
2026-06-18T11:18:00.0952946Z       "requiredStages": [
2026-06-18T11:18:00.0953031Z         "doc",
2026-06-18T11:18:00.0953122Z         "impl",
2026-06-18T11:18:00.0953213Z         "unit",
2026-06-18T11:18:00.0953299Z         "int"
2026-06-18T11:18:00.0953389Z       ],
2026-06-18T11:18:00.0953480Z       "stages": {
2026-06-18T11:18:00.0953566Z         "doc": {
2026-06-18T11:18:00.0953666Z           "complete": true,
2026-06-18T11:18:00.0953872Z           "evidence": [
2026-06-18T11:18:00.0953952Z             {
2026-06-18T11:18:00.0954061Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.0954158Z               "line": 184
2026-06-18T11:18:00.0954238Z             },
2026-06-18T11:18:00.0954324Z             {
2026-06-18T11:18:00.0954429Z               "path": "docs/MANIFEST.md",
2026-06-18T11:18:00.0954534Z               "line": 46
2026-06-18T11:18:00.0954619Z             }
2026-06-18T11:18:00.0954695Z           ]
2026-06-18T11:18:00.0954792Z         },
2026-06-18T11:18:00.0954886Z         "impl": {
2026-06-18T11:18:00.0954972Z           "complete": true,
2026-06-18T11:18:00.0955064Z           "evidence": [
2026-06-18T11:18:00.0955150Z             {
2026-06-18T11:18:00.0955281Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T11:18:00.0955376Z               "line": 222
2026-06-18T11:18:00.0955458Z             },
2026-06-18T11:18:00.0955546Z             {
2026-06-18T11:18:00.0955664Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T11:18:00.0955765Z               "line": 306
2026-06-18T11:18:00.0955847Z             }
2026-06-18T11:18:00.0955941Z           ]
2026-06-18T11:18:00.0956022Z         },
2026-06-18T11:18:00.0956123Z         "int": {
2026-06-18T11:18:00.0956218Z           "complete": true,
2026-06-18T11:18:00.0956317Z           "evidence": [
2026-06-18T11:18:00.0956410Z             {
2026-06-18T11:18:00.0956538Z               "path": "crates/spt/tests/live_resolve_e2e.rs",
2026-06-18T11:18:00.0956632Z               "line": 18
2026-06-18T11:18:00.0956725Z             }
2026-06-18T11:18:00.0956809Z           ]
2026-06-18T11:18:00.0956900Z         },
2026-06-18T11:18:00.0956991Z         "unit": {
2026-06-18T11:18:00.0957086Z           "complete": true,
2026-06-18T11:18:00.0957176Z           "evidence": [
2026-06-18T11:18:00.0957267Z             {
2026-06-18T11:18:00.0957387Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.0957481Z               "line": 1453
2026-06-18T11:18:00.0957582Z             },
2026-06-18T11:18:00.0957659Z             {
2026-06-18T11:18:00.0957791Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T11:18:00.0957876Z               "line": 316
2026-06-18T11:18:00.0957957Z             },
2026-06-18T11:18:00.0958052Z             {
2026-06-18T11:18:00.0958175Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T11:18:00.0958274Z               "line": 332
2026-06-18T11:18:00.0958361Z             },
2026-06-18T11:18:00.0958447Z             {
2026-06-18T11:18:00.0958555Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T11:18:00.0958652Z               "line": 345
2026-06-18T11:18:00.0958742Z             },
2026-06-18T11:18:00.0958828Z             {
2026-06-18T11:18:00.0959033Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T11:18:00.0959128Z               "line": 422
2026-06-18T11:18:00.0959219Z             },
2026-06-18T11:18:00.0959305Z             {
2026-06-18T11:18:00.0959424Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T11:18:00.0959519Z               "line": 436
2026-06-18T11:18:00.0959615Z             }
2026-06-18T11:18:00.0959705Z           ]
2026-06-18T11:18:00.0959786Z         }
2026-06-18T11:18:00.0959872Z       }
2026-06-18T11:18:00.0959963Z     },
2026-06-18T11:18:00.0960043Z     {
2026-06-18T11:18:00.0960250Z       "id": "REQ-MESH-1",
2026-06-18T11:18:00.0962293Z       "title": "Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).",
2026-06-18T11:18:00.0962490Z       "requiredStages": [
2026-06-18T11:18:00.0962580Z         "impl",
2026-06-18T11:18:00.0962670Z         "unit",
2026-06-18T11:18:00.0962751Z         "int"
2026-06-18T11:18:00.0962833Z       ],
2026-06-18T11:18:00.0965681Z       "stages": {
2026-06-18T11:18:00.0965794Z         "doc": {
2026-06-18T11:18:00.0965898Z           "complete": false,
2026-06-18T11:18:00.0965998Z           "evidence": []
2026-06-18T11:18:00.0966084Z         },
2026-06-18T11:18:00.0966177Z         "impl": {
2026-06-18T11:18:00.0966273Z           "complete": true,
2026-06-18T11:18:00.0966369Z           "evidence": [
2026-06-18T11:18:00.0966459Z             {
2026-06-18T11:18:00.0966592Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:18:00.0966693Z               "line": 922
2026-06-18T11:18:00.0966778Z             },
2026-06-18T11:18:00.0966864Z             {
2026-06-18T11:18:00.0967008Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T11:18:00.0967103Z               "line": 38
2026-06-18T11:18:00.0967188Z             },
2026-06-18T11:18:00.0967270Z             {
2026-06-18T11:18:00.0967393Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T11:18:00.0967479Z               "line": 161
2026-06-18T11:18:00.0967575Z             },
2026-06-18T11:18:00.0967651Z             {
2026-06-18T11:18:00.0967779Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T11:18:00.0967871Z               "line": 206
2026-06-18T11:18:00.0967962Z             },
2026-06-18T11:18:00.0968036Z             {
2026-06-18T11:18:00.0968161Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T11:18:00.0968253Z               "line": 57
2026-06-18T11:18:00.0968337Z             },
2026-06-18T11:18:00.0968418Z             {
2026-06-18T11:18:00.0968561Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T11:18:00.0968664Z               "line": 24
2026-06-18T11:18:00.0968754Z             },
2026-06-18T11:18:00.0968835Z             {
2026-06-18T11:18:00.0969159Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T11:18:00.0969260Z               "line": 142
2026-06-18T11:18:00.0969354Z             },
2026-06-18T11:18:00.0969445Z             {
2026-06-18T11:18:00.0969584Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T11:18:00.0969674Z               "line": 162
2026-06-18T11:18:00.0969750Z             }
2026-06-18T11:18:00.0969832Z           ]
2026-06-18T11:18:00.0969913Z         },
2026-06-18T11:18:00.0970008Z         "int": {
2026-06-18T11:18:00.0970098Z           "complete": true,
2026-06-18T11:18:00.0970194Z           "evidence": [
2026-06-18T11:18:00.0970280Z             {
2026-06-18T11:18:00.0970423Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-18T11:18:00.0970542Z               "line": 67
2026-06-18T11:18:00.0970637Z             },
2026-06-18T11:18:00.0970733Z             {
2026-06-18T11:18:00.0970857Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-18T11:18:00.0970942Z               "line": 93
2026-06-18T11:18:00.0971038Z             },
2026-06-18T11:18:00.0971116Z             {
2026-06-18T11:18:00.0971237Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-18T11:18:00.0971466Z               "line": 117
2026-06-18T11:18:00.0971548Z             },
2026-06-18T11:18:00.0971632Z             {
2026-06-18T11:18:00.0971762Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-18T11:18:00.0971852Z               "line": 134
2026-06-18T11:18:00.0971938Z             }
2026-06-18T11:18:00.0972019Z           ]
2026-06-18T11:18:00.0972101Z         },
2026-06-18T11:18:00.0972191Z         "unit": {
2026-06-18T11:18:00.0972285Z           "complete": true,
2026-06-18T11:18:00.0972382Z           "evidence": [
2026-06-18T11:18:00.0972472Z             {
2026-06-18T11:18:00.0972586Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T11:18:00.0972773Z               "line": 427
2026-06-18T11:18:00.0972863Z             },
2026-06-18T11:18:00.0972943Z             {
2026-06-18T11:18:00.0973078Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T11:18:00.0973158Z               "line": 376
2026-06-18T11:18:00.0973254Z             },
2026-06-18T11:18:00.0973341Z             {
2026-06-18T11:18:00.0973468Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T11:18:00.0973553Z               "line": 412
2026-06-18T11:18:00.0973677Z             },
2026-06-18T11:18:00.0973809Z             {
2026-06-18T11:18:00.0973937Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T11:18:00.0974023Z               "line": 427
2026-06-18T11:18:00.0974110Z             },
2026-06-18T11:18:00.0974189Z             {
2026-06-18T11:18:00.0974319Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T11:18:00.0974424Z               "line": 438
2026-06-18T11:18:00.0974504Z             },
2026-06-18T11:18:00.0974585Z             {
2026-06-18T11:18:00.0974715Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T11:18:00.0974795Z               "line": 449
2026-06-18T11:18:00.0974876Z             },
2026-06-18T11:18:00.0974963Z             {
2026-06-18T11:18:00.0975092Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T11:18:00.0975186Z               "line": 460
2026-06-18T11:18:00.0975273Z             },
2026-06-18T11:18:00.0975363Z             {
2026-06-18T11:18:00.0975486Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T11:18:00.0975574Z               "line": 496
2026-06-18T11:18:00.0975659Z             },
2026-06-18T11:18:00.0975729Z             {
2026-06-18T11:18:00.0975859Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T11:18:00.0975950Z               "line": 519
2026-06-18T11:18:00.0976030Z             },
2026-06-18T11:18:00.0976121Z             {
2026-06-18T11:18:00.0976241Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T11:18:00.0976336Z               "line": 546
2026-06-18T11:18:00.0976411Z             }
2026-06-18T11:18:00.0976506Z           ]
2026-06-18T11:18:00.0976587Z         }
2026-06-18T11:18:00.0976676Z       }
2026-06-18T11:18:00.0976761Z     },
2026-06-18T11:18:00.0976852Z     {
2026-06-18T11:18:00.0976943Z       "id": "REQ-MESH-2",
2026-06-18T11:18:00.0979571Z       "title": "Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).",
2026-06-18T11:18:00.0979943Z       "requiredStages": [
2026-06-18T11:18:00.0980029Z         "impl",
2026-06-18T11:18:00.0980111Z         "unit",
2026-06-18T11:18:00.0980197Z         "int"
2026-06-18T11:18:00.0980277Z       ],
2026-06-18T11:18:00.0980368Z       "stages": {
2026-06-18T11:18:00.0980458Z         "doc": {
2026-06-18T11:18:00.0980549Z           "complete": false,
2026-06-18T11:18:00.0980639Z           "evidence": []
2026-06-18T11:18:00.0980727Z         },
2026-06-18T11:18:00.0980820Z         "impl": {
2026-06-18T11:18:00.0980906Z           "complete": true,
2026-06-18T11:18:00.0980998Z           "evidence": [
2026-06-18T11:18:00.0981088Z             {
2026-06-18T11:18:00.0981317Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:18:00.0981412Z               "line": 757
2026-06-18T11:18:00.0981497Z             },
2026-06-18T11:18:00.0981584Z             {
2026-06-18T11:18:00.0981700Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T11:18:00.0981788Z               "line": 118
2026-06-18T11:18:00.0981878Z             },
2026-06-18T11:18:00.0981964Z             {
2026-06-18T11:18:00.0982084Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T11:18:00.0982178Z               "line": 347
2026-06-18T11:18:00.0982264Z             },
2026-06-18T11:18:00.0982351Z             {
2026-06-18T11:18:00.0982474Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T11:18:00.0982564Z               "line": 389
2026-06-18T11:18:00.0982642Z             },
2026-06-18T11:18:00.0982727Z             {
2026-06-18T11:18:00.0982841Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T11:18:00.0982947Z               "line": 403
2026-06-18T11:18:00.0983032Z             },
2026-06-18T11:18:00.0983118Z             {
2026-06-18T11:18:00.0983242Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T11:18:00.0983323Z               "line": 492
2026-06-18T11:18:00.0983409Z             },
2026-06-18T11:18:00.0983480Z             {
2026-06-18T11:18:00.0983605Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T11:18:00.0983686Z               "line": 507
2026-06-18T11:18:00.0983785Z             },
2026-06-18T11:18:00.0983872Z             {
2026-06-18T11:18:00.0983986Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T11:18:00.0984080Z               "line": 534
2026-06-18T11:18:00.0984166Z             },
2026-06-18T11:18:00.0984247Z             {
2026-06-18T11:18:00.0984378Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T11:18:00.0984473Z               "line": 207
2026-06-18T11:18:00.0984560Z             },
2026-06-18T11:18:00.0984661Z             {
2026-06-18T11:18:00.0984778Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T11:18:00.0984865Z               "line": 755
2026-06-18T11:18:00.0984956Z             },
2026-06-18T11:18:00.0985036Z             {
2026-06-18T11:18:00.0985165Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T11:18:00.0985256Z               "line": 816
2026-06-18T11:18:00.0985337Z             },
2026-06-18T11:18:00.0985426Z             {
2026-06-18T11:18:00.0985547Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T11:18:00.0985632Z               "line": 869
2026-06-18T11:18:00.0985713Z             },
2026-06-18T11:18:00.0985799Z             {
2026-06-18T11:18:00.0985923Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T11:18:00.0986009Z               "line": 891
2026-06-18T11:18:00.0986095Z             },
2026-06-18T11:18:00.0986181Z             {
2026-06-18T11:18:00.0986304Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.0986405Z               "line": 122
2026-06-18T11:18:00.0986492Z             },
2026-06-18T11:18:00.0986581Z             {
2026-06-18T11:18:00.0986695Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T11:18:00.0986787Z               "line": 44
2026-06-18T11:18:00.0986873Z             },
2026-06-18T11:18:00.0987042Z             {
2026-06-18T11:18:00.0987166Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T11:18:00.0987255Z               "line": 184
2026-06-18T11:18:00.0987340Z             },
2026-06-18T11:18:00.0987431Z             {
2026-06-18T11:18:00.0987537Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T11:18:00.0987626Z               "line": 211
2026-06-18T11:18:00.0987717Z             },
2026-06-18T11:18:00.0987804Z             {
2026-06-18T11:18:00.0987918Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T11:18:00.0988013Z               "line": 251
2026-06-18T11:18:00.0988090Z             },
2026-06-18T11:18:00.0988251Z             {
2026-06-18T11:18:00.0988361Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T11:18:00.0988457Z               "line": 275
2026-06-18T11:18:00.0988538Z             },
2026-06-18T11:18:00.0988623Z             {
2026-06-18T11:18:00.0988734Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T11:18:00.0988828Z               "line": 289
2026-06-18T11:18:00.0988914Z             },
2026-06-18T11:18:00.0989063Z             {
2026-06-18T11:18:00.0989185Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T11:18:00.0989272Z               "line": 300
2026-06-18T11:18:00.0989359Z             },
2026-06-18T11:18:00.0989458Z             {
2026-06-18T11:18:00.0989567Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T11:18:00.0989661Z               "line": 313
2026-06-18T11:18:00.0989738Z             }
2026-06-18T11:18:00.0989817Z           ]
2026-06-18T11:18:00.0989907Z         },
2026-06-18T11:18:00.0989983Z         "int": {
2026-06-18T11:18:00.0990095Z           "complete": true,
2026-06-18T11:18:00.0990188Z           "evidence": [
2026-06-18T11:18:00.0990279Z             {
2026-06-18T11:18:00.0990413Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-18T11:18:00.0990503Z               "line": 116
2026-06-18T11:18:00.0990594Z             },
2026-06-18T11:18:00.0990676Z             {
2026-06-18T11:18:00.0990803Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-18T11:18:00.0990894Z               "line": 181
2026-06-18T11:18:00.0990986Z             }
2026-06-18T11:18:00.0991061Z           ]
2026-06-18T11:18:00.0991146Z         },
2026-06-18T11:18:00.0991238Z         "unit": {
2026-06-18T11:18:00.0991338Z           "complete": true,
2026-06-18T11:18:00.0991429Z           "evidence": [
2026-06-18T11:18:00.0991510Z             {
2026-06-18T11:18:00.0991635Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T11:18:00.0991728Z               "line": 999
2026-06-18T11:18:00.0991820Z             },
2026-06-18T11:18:00.0991897Z             {
2026-06-18T11:18:00.0992014Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T11:18:00.0992105Z               "line": 1016
2026-06-18T11:18:00.0992193Z             },
2026-06-18T11:18:00.0992283Z             {
2026-06-18T11:18:00.0992410Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T11:18:00.0992510Z               "line": 1024
2026-06-18T11:18:00.0992596Z             },
2026-06-18T11:18:00.0992682Z             {
2026-06-18T11:18:00.0992805Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T11:18:00.0992892Z               "line": 1048
2026-06-18T11:18:00.0992982Z             },
2026-06-18T11:18:00.0993072Z             {
2026-06-18T11:18:00.0993198Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T11:18:00.0993287Z               "line": 1499
2026-06-18T11:18:00.0993372Z             },
2026-06-18T11:18:00.0993459Z             {
2026-06-18T11:18:00.0993568Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T11:18:00.0993664Z               "line": 347
2026-06-18T11:18:00.0993754Z             },
2026-06-18T11:18:00.0993836Z             {
2026-06-18T11:18:00.0993945Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T11:18:00.0994036Z               "line": 370
2026-06-18T11:18:00.0994232Z             },
2026-06-18T11:18:00.0994316Z             {
2026-06-18T11:18:00.0994437Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T11:18:00.0994527Z               "line": 407
2026-06-18T11:18:00.0994612Z             },
2026-06-18T11:18:00.0994702Z             {
2026-06-18T11:18:00.0994812Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T11:18:00.0994906Z               "line": 431
2026-06-18T11:18:00.0994981Z             },
2026-06-18T11:18:00.0995071Z             {
2026-06-18T11:18:00.0995187Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T11:18:00.0995282Z               "line": 483
2026-06-18T11:18:00.0995463Z             },
2026-06-18T11:18:00.0995539Z             {
2026-06-18T11:18:00.0995657Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T11:18:00.0995750Z               "line": 499
2026-06-18T11:18:00.0995835Z             },
2026-06-18T11:18:00.0995925Z             {
2026-06-18T11:18:00.0996040Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T11:18:00.0996135Z               "line": 514
2026-06-18T11:18:00.0996226Z             },
2026-06-18T11:18:00.0996311Z             {
2026-06-18T11:18:00.0996422Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T11:18:00.0996512Z               "line": 531
2026-06-18T11:18:00.0996602Z             }
2026-06-18T11:18:00.0996689Z           ]
2026-06-18T11:18:00.0996779Z         }
2026-06-18T11:18:00.0996864Z       }
2026-06-18T11:18:00.0996950Z     },
2026-06-18T11:18:00.0997033Z     {
2026-06-18T11:18:00.0997127Z       "id": "REQ-MESH-3",
2026-06-18T11:18:00.0998797Z       "title": "Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.",
2026-06-18T11:18:00.0998916Z       "requiredStages": [
2026-06-18T11:18:00.0999088Z         "impl",
2026-06-18T11:18:00.0999173Z         "unit",
2026-06-18T11:18:00.0999265Z         "int"
2026-06-18T11:18:00.0999356Z       ],
2026-06-18T11:18:00.0999441Z       "stages": {
2026-06-18T11:18:00.0999532Z         "doc": {
2026-06-18T11:18:00.0999628Z           "complete": false,
2026-06-18T11:18:00.0999736Z           "evidence": []
2026-06-18T11:18:00.0999856Z         },
2026-06-18T11:18:00.0999962Z         "impl": {
2026-06-18T11:18:00.1000060Z           "complete": true,
2026-06-18T11:18:00.1000150Z           "evidence": [
2026-06-18T11:18:00.1000236Z             {
2026-06-18T11:18:00.1000368Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:18:00.1000462Z               "line": 641
2026-06-18T11:18:00.1000553Z             }
2026-06-18T11:18:00.1000635Z           ]
2026-06-18T11:18:00.1000725Z         },
2026-06-18T11:18:00.1000810Z         "int": {
2026-06-18T11:18:00.1000898Z           "complete": true,
2026-06-18T11:18:00.1000993Z           "evidence": [
2026-06-18T11:18:00.1001082Z             {
2026-06-18T11:18:00.1001203Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-18T11:18:00.1001302Z               "line": 373
2026-06-18T11:18:00.1001387Z             },
2026-06-18T11:18:00.1001469Z             {
2026-06-18T11:18:00.1001588Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-18T11:18:00.1001669Z               "line": 436
2026-06-18T11:18:00.1001764Z             }
2026-06-18T11:18:00.1001856Z           ]
2026-06-18T11:18:00.1001926Z         },
2026-06-18T11:18:00.1002021Z         "unit": {
2026-06-18T11:18:00.1002118Z           "complete": true,
2026-06-18T11:18:00.1002214Z           "evidence": [
2026-06-18T11:18:00.1002298Z             {
2026-06-18T11:18:00.1002515Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:18:00.1002612Z               "line": 910
2026-06-18T11:18:00.1002694Z             }
2026-06-18T11:18:00.1002786Z           ]
2026-06-18T11:18:00.1002871Z         }
2026-06-18T11:18:00.1002960Z       }
2026-06-18T11:18:00.1003045Z     },
2026-06-18T11:18:00.1003132Z     {
2026-06-18T11:18:00.1003233Z       "id": "REQ-MESH-4",
2026-06-18T11:18:00.1005367Z       "title": "Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.",
2026-06-18T11:18:00.1005574Z       "requiredStages": [
2026-06-18T11:18:00.1005670Z         "impl",
2026-06-18T11:18:00.1005747Z         "unit",
2026-06-18T11:18:00.1005837Z         "int"
2026-06-18T11:18:00.1005922Z       ],
2026-06-18T11:18:00.1006014Z       "stages": {
2026-06-18T11:18:00.1006090Z         "doc": {
2026-06-18T11:18:00.1006185Z           "complete": false,
2026-06-18T11:18:00.1006280Z           "evidence": []
2026-06-18T11:18:00.1006367Z         },
2026-06-18T11:18:00.1006475Z         "impl": {
2026-06-18T11:18:00.1006571Z           "complete": true,
2026-06-18T11:18:00.1006667Z           "evidence": [
2026-06-18T11:18:00.1006753Z             {
2026-06-18T11:18:00.1006891Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-18T11:18:00.1006987Z               "line": 33
2026-06-18T11:18:00.1007082Z             },
2026-06-18T11:18:00.1007176Z             {
2026-06-18T11:18:00.1007306Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T11:18:00.1007410Z               "line": 68
2026-06-18T11:18:00.1007487Z             },
2026-06-18T11:18:00.1007569Z             {
2026-06-18T11:18:00.1007696Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T11:18:00.1007787Z               "line": 111
2026-06-18T11:18:00.1007883Z             },
2026-06-18T11:18:00.1007969Z             {
2026-06-18T11:18:00.1008096Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T11:18:00.1008191Z               "line": 462
2026-06-18T11:18:00.1008286Z             },
2026-06-18T11:18:00.1008375Z             {
2026-06-18T11:18:00.1008494Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T11:18:00.1008585Z               "line": 711
2026-06-18T11:18:00.1008676Z             },
2026-06-18T11:18:00.1008765Z             {
2026-06-18T11:18:00.1008891Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T11:18:00.1009071Z               "line": 725
2026-06-18T11:18:00.1009157Z             },
2026-06-18T11:18:00.1009239Z             {
2026-06-18T11:18:00.1009362Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.1009453Z               "line": 132
2026-06-18T11:18:00.1009539Z             },
2026-06-18T11:18:00.1009634Z             {
2026-06-18T11:18:00.1009767Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-18T11:18:00.1009897Z               "line": 26
2026-06-18T11:18:00.1009972Z             },
2026-06-18T11:18:00.1010053Z             {
2026-06-18T11:18:00.1010178Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-18T11:18:00.1010282Z               "line": 97
2026-06-18T11:18:00.1010373Z             },
2026-06-18T11:18:00.1010455Z             {
2026-06-18T11:18:00.1010583Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-18T11:18:00.1010672Z               "line": 119
2026-06-18T11:18:00.1010881Z             },
2026-06-18T11:18:00.1010970Z             {
2026-06-18T11:18:00.1011095Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T11:18:00.1011190Z               "line": 82
2026-06-18T11:18:00.1011266Z             },
2026-06-18T11:18:00.1011361Z             {
2026-06-18T11:18:00.1011467Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T11:18:00.1011567Z               "line": 111
2026-06-18T11:18:00.1011652Z             },
2026-06-18T11:18:00.1011739Z             {
2026-06-18T11:18:00.1011857Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T11:18:00.1011943Z               "line": 232
2026-06-18T11:18:00.1012130Z             },
2026-06-18T11:18:00.1012215Z             {
2026-06-18T11:18:00.1012325Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T11:18:00.1012416Z               "line": 245
2026-06-18T11:18:00.1012505Z             },
2026-06-18T11:18:00.1012586Z             {
2026-06-18T11:18:00.1012712Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1012811Z               "line": 4516
2026-06-18T11:18:00.1012892Z             }
2026-06-18T11:18:00.1012983Z           ]
2026-06-18T11:18:00.1013075Z         },
2026-06-18T11:18:00.1013172Z         "int": {
2026-06-18T11:18:00.1013279Z           "complete": true,
2026-06-18T11:18:00.1013370Z           "evidence": [
2026-06-18T11:18:00.1013459Z             {
2026-06-18T11:18:00.1013582Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-18T11:18:00.1013668Z               "line": 98
2026-06-18T11:18:00.1013755Z             },
2026-06-18T11:18:00.1013844Z             {
2026-06-18T11:18:00.1013969Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-18T11:18:00.1014060Z               "line": 140
2026-06-18T11:18:00.1014140Z             }
2026-06-18T11:18:00.1014226Z           ]
2026-06-18T11:18:00.1014308Z         },
2026-06-18T11:18:00.1014398Z         "unit": {
2026-06-18T11:18:00.1014502Z           "complete": true,
2026-06-18T11:18:00.1014593Z           "evidence": [
2026-06-18T11:18:00.1014680Z             {
2026-06-18T11:18:00.1014812Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-18T11:18:00.1014908Z               "line": 178
2026-06-18T11:18:00.1015004Z             },
2026-06-18T11:18:00.1015099Z             {
2026-06-18T11:18:00.1015223Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-18T11:18:00.1015319Z               "line": 242
2026-06-18T11:18:00.1015398Z             },
2026-06-18T11:18:00.1015485Z             {
2026-06-18T11:18:00.1015601Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T11:18:00.1015713Z               "line": 1079
2026-06-18T11:18:00.1015799Z             },
2026-06-18T11:18:00.1015880Z             {
2026-06-18T11:18:00.1016007Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T11:18:00.1016106Z               "line": 1109
2026-06-18T11:18:00.1016182Z             },
2026-06-18T11:18:00.1016278Z             {
2026-06-18T11:18:00.1016407Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T11:18:00.1016492Z               "line": 1129
2026-06-18T11:18:00.1016579Z             },
2026-06-18T11:18:00.1016660Z             {
2026-06-18T11:18:00.1016783Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T11:18:00.1016880Z               "line": 602
2026-06-18T11:18:00.1016965Z             },
2026-06-18T11:18:00.1017059Z             {
2026-06-18T11:18:00.1017185Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-18T11:18:00.1017270Z               "line": 148
2026-06-18T11:18:00.1017365Z             },
2026-06-18T11:18:00.1017460Z             {
2026-06-18T11:18:00.1017580Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-18T11:18:00.1017665Z               "line": 169
2026-06-18T11:18:00.1017760Z             },
2026-06-18T11:18:00.1017843Z             {
2026-06-18T11:18:00.1017956Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-18T11:18:00.1018158Z               "line": 181
2026-06-18T11:18:00.1018238Z             },
2026-06-18T11:18:00.1018333Z             {
2026-06-18T11:18:00.1018443Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-18T11:18:00.1018543Z               "line": 202
2026-06-18T11:18:00.1018628Z             },
2026-06-18T11:18:00.1018708Z             {
2026-06-18T11:18:00.1018832Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T11:18:00.1018921Z               "line": 375
2026-06-18T11:18:00.1019078Z             },
2026-06-18T11:18:00.1019174Z             {
2026-06-18T11:18:00.1019293Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T11:18:00.1019484Z               "line": 407
2026-06-18T11:18:00.1019570Z             },
2026-06-18T11:18:00.1019664Z             {
2026-06-18T11:18:00.1019770Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1019865Z               "line": 9822
2026-06-18T11:18:00.1019955Z             }
2026-06-18T11:18:00.1020051Z           ]
2026-06-18T11:18:00.1020151Z         }
2026-06-18T11:18:00.1020232Z       }
2026-06-18T11:18:00.1020318Z     },
2026-06-18T11:18:00.1020400Z     {
2026-06-18T11:18:00.1020499Z       "id": "REQ-MESH-5",
2026-06-18T11:18:00.1021883Z       "title": "Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.",
2026-06-18T11:18:00.1021993Z       "requiredStages": [
2026-06-18T11:18:00.1022088Z         "impl",
2026-06-18T11:18:00.1022174Z         "unit"
2026-06-18T11:18:00.1022260Z       ],
2026-06-18T11:18:00.1022356Z       "stages": {
2026-06-18T11:18:00.1022442Z         "doc": {
2026-06-18T11:18:00.1022545Z           "complete": false,
2026-06-18T11:18:00.1022633Z           "evidence": []
2026-06-18T11:18:00.1022732Z         },
2026-06-18T11:18:00.1022813Z         "impl": {
2026-06-18T11:18:00.1022913Z           "complete": true,
2026-06-18T11:18:00.1023009Z           "evidence": [
2026-06-18T11:18:00.1023095Z             {
2026-06-18T11:18:00.1023228Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T11:18:00.1023320Z               "line": 61
2026-06-18T11:18:00.1023404Z             },
2026-06-18T11:18:00.1023495Z             {
2026-06-18T11:18:00.1023620Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T11:18:00.1023719Z               "line": 109
2026-06-18T11:18:00.1023805Z             },
2026-06-18T11:18:00.1023902Z             {
2026-06-18T11:18:00.1024020Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T11:18:00.1024119Z               "line": 104
2026-06-18T11:18:00.1024200Z             },
2026-06-18T11:18:00.1024305Z             {
2026-06-18T11:18:00.1024433Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T11:18:00.1024524Z               "line": 105
2026-06-18T11:18:00.1024615Z             },
2026-06-18T11:18:00.1024701Z             {
2026-06-18T11:18:00.1024834Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1024925Z               "line": 85
2026-06-18T11:18:00.1025020Z             },
2026-06-18T11:18:00.1025105Z             {
2026-06-18T11:18:00.1025226Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1025320Z               "line": 250
2026-06-18T11:18:00.1025401Z             },
2026-06-18T11:18:00.1025502Z             {
2026-06-18T11:18:00.1025625Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1025711Z               "line": 314
2026-06-18T11:18:00.1025798Z             },
2026-06-18T11:18:00.1025879Z             {
2026-06-18T11:18:00.1026012Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1026204Z               "line": 767
2026-06-18T11:18:00.1026302Z             },
2026-06-18T11:18:00.1026387Z             {
2026-06-18T11:18:00.1026507Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T11:18:00.1026609Z               "line": 101
2026-06-18T11:18:00.1026699Z             },
2026-06-18T11:18:00.1026795Z             {
2026-06-18T11:18:00.1026896Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T11:18:00.1026995Z               "line": 193
2026-06-18T11:18:00.1027081Z             }
2026-06-18T11:18:00.1027167Z           ]
2026-06-18T11:18:00.1027253Z         },
2026-06-18T11:18:00.1027338Z         "int": {
2026-06-18T11:18:00.1027520Z           "complete": false,
2026-06-18T11:18:00.1027615Z           "evidence": []
2026-06-18T11:18:00.1027696Z         },
2026-06-18T11:18:00.1027783Z         "unit": {
2026-06-18T11:18:00.1027883Z           "complete": true,
2026-06-18T11:18:00.1027977Z           "evidence": [
2026-06-18T11:18:00.1028064Z             {
2026-06-18T11:18:00.1028192Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1028287Z               "line": 1009
2026-06-18T11:18:00.1028379Z             },
2026-06-18T11:18:00.1028469Z             {
2026-06-18T11:18:00.1028583Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T11:18:00.1028684Z               "line": 462
2026-06-18T11:18:00.1028770Z             }
2026-06-18T11:18:00.1028859Z           ]
2026-06-18T11:18:00.1029023Z         }
2026-06-18T11:18:00.1029103Z       }
2026-06-18T11:18:00.1029197Z     },
2026-06-18T11:18:00.1029273Z     {
2026-06-18T11:18:00.1029379Z       "id": "REQ-MESH-6",
2026-06-18T11:18:00.1030592Z       "title": "Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)",
2026-06-18T11:18:00.1030707Z       "requiredStages": [
2026-06-18T11:18:00.1030802Z         "impl",
2026-06-18T11:18:00.1030883Z         "unit"
2026-06-18T11:18:00.1030970Z       ],
2026-06-18T11:18:00.1031059Z       "stages": {
2026-06-18T11:18:00.1031155Z         "doc": {
2026-06-18T11:18:00.1031241Z           "complete": false,
2026-06-18T11:18:00.1031337Z           "evidence": []
2026-06-18T11:18:00.1031431Z         },
2026-06-18T11:18:00.1031517Z         "impl": {
2026-06-18T11:18:00.1031618Z           "complete": true,
2026-06-18T11:18:00.1031712Z           "evidence": [
2026-06-18T11:18:00.1031811Z             {
2026-06-18T11:18:00.1031917Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1032015Z               "line": 4039
2026-06-18T11:18:00.1032118Z             }
2026-06-18T11:18:00.1032195Z           ]
2026-06-18T11:18:00.1032282Z         },
2026-06-18T11:18:00.1032372Z         "int": {
2026-06-18T11:18:00.1032476Z           "complete": false,
2026-06-18T11:18:00.1032559Z           "evidence": []
2026-06-18T11:18:00.1032649Z         },
2026-06-18T11:18:00.1032739Z         "unit": {
2026-06-18T11:18:00.1032829Z           "complete": true,
2026-06-18T11:18:00.1032911Z           "evidence": [
2026-06-18T11:18:00.1033002Z             {
2026-06-18T11:18:00.1033110Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1033202Z               "line": 10355
2026-06-18T11:18:00.1033288Z             },
2026-06-18T11:18:00.1033373Z             {
2026-06-18T11:18:00.1033478Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1033583Z               "line": 10382
2026-06-18T11:18:00.1033664Z             },
2026-06-18T11:18:00.1033750Z             {
2026-06-18T11:18:00.1033856Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1033950Z               "line": 10406
2026-06-18T11:18:00.1034041Z             }
2026-06-18T11:18:00.1034128Z           ]
2026-06-18T11:18:00.1034322Z         }
2026-06-18T11:18:00.1034409Z       }
2026-06-18T11:18:00.1034495Z     },
2026-06-18T11:18:00.1034580Z     {
2026-06-18T11:18:00.1034679Z       "id": "REQ-MIGRATE-1",
2026-06-18T11:18:00.1034860Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-18T11:18:00.1034955Z       "requiredStages": [],
2026-06-18T11:18:00.1035041Z       "stages": {
2026-06-18T11:18:00.1035122Z         "doc": {
2026-06-18T11:18:00.1035223Z           "complete": false,
2026-06-18T11:18:00.1035317Z           "evidence": []
2026-06-18T11:18:00.1035399Z         },
2026-06-18T11:18:00.1035486Z         "impl": {
2026-06-18T11:18:00.1035576Z           "complete": false,
2026-06-18T11:18:00.1035762Z           "evidence": []
2026-06-18T11:18:00.1035847Z         },
2026-06-18T11:18:00.1035942Z         "int": {
2026-06-18T11:18:00.1036038Z           "complete": false,
2026-06-18T11:18:00.1036134Z           "evidence": []
2026-06-18T11:18:00.1036219Z         },
2026-06-18T11:18:00.1036309Z         "unit": {
2026-06-18T11:18:00.1036415Z           "complete": false,
2026-06-18T11:18:00.1036505Z           "evidence": []
2026-06-18T11:18:00.1036600Z         }
2026-06-18T11:18:00.1036687Z       }
2026-06-18T11:18:00.1036768Z     },
2026-06-18T11:18:00.1036862Z     {
2026-06-18T11:18:00.1036952Z       "id": "REQ-MSG-1",
2026-06-18T11:18:00.1037394Z       "title": "Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)",
2026-06-18T11:18:00.1037489Z       "requiredStages": [
2026-06-18T11:18:00.1037579Z         "impl",
2026-06-18T11:18:00.1037665Z         "unit",
2026-06-18T11:18:00.1037775Z         "int"
2026-06-18T11:18:00.1037855Z       ],
2026-06-18T11:18:00.1037941Z       "stages": {
2026-06-18T11:18:00.1038029Z         "doc": {
2026-06-18T11:18:00.1038128Z           "complete": false,
2026-06-18T11:18:00.1038223Z           "evidence": []
2026-06-18T11:18:00.1038310Z         },
2026-06-18T11:18:00.1038404Z         "impl": {
2026-06-18T11:18:00.1038504Z           "complete": true,
2026-06-18T11:18:00.1038590Z           "evidence": [
2026-06-18T11:18:00.1038682Z             {
2026-06-18T11:18:00.1038800Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T11:18:00.1038895Z               "line": 28
2026-06-18T11:18:00.1039052Z             },
2026-06-18T11:18:00.1041892Z             {
2026-06-18T11:18:00.1042044Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T11:18:00.1042135Z               "line": 94
2026-06-18T11:18:00.1042235Z             },
2026-06-18T11:18:00.1042320Z             {
2026-06-18T11:18:00.1042433Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T11:18:00.1042543Z               "line": 127
2026-06-18T11:18:00.1042641Z             },
2026-06-18T11:18:00.1042736Z             {
2026-06-18T11:18:00.1042847Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T11:18:00.1042932Z               "line": 149
2026-06-18T11:18:00.1043022Z             },
2026-06-18T11:18:00.1043104Z             {
2026-06-18T11:18:00.1043209Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T11:18:00.1043309Z               "line": 174
2026-06-18T11:18:00.1043404Z             },
2026-06-18T11:18:00.1043490Z             {
2026-06-18T11:18:00.1043614Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-18T11:18:00.1043705Z               "line": 18
2026-06-18T11:18:00.1043796Z             },
2026-06-18T11:18:00.1043876Z             {
2026-06-18T11:18:00.1043995Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-18T11:18:00.1044087Z               "line": 13
2026-06-18T11:18:00.1044172Z             },
2026-06-18T11:18:00.1044262Z             {
2026-06-18T11:18:00.1044368Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-18T11:18:00.1044468Z               "line": 62
2026-06-18T11:18:00.1044548Z             },
2026-06-18T11:18:00.1044634Z             {
2026-06-18T11:18:00.1044745Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-18T11:18:00.1044969Z               "line": 13
2026-06-18T11:18:00.1045060Z             }
2026-06-18T11:18:00.1045149Z           ]
2026-06-18T11:18:00.1045229Z         },
2026-06-18T11:18:00.1045320Z         "int": {
2026-06-18T11:18:00.1045430Z           "complete": true,
2026-06-18T11:18:00.1045525Z           "evidence": [
2026-06-18T11:18:00.1045601Z             {
2026-06-18T11:18:00.1045759Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-18T11:18:00.1045868Z               "line": 9
2026-06-18T11:18:00.1045964Z             },
2026-06-18T11:18:00.1046050Z             {
2026-06-18T11:18:00.1046197Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-18T11:18:00.1046407Z               "line": 56
2026-06-18T11:18:00.1046488Z             },
2026-06-18T11:18:00.1046579Z             {
2026-06-18T11:18:00.1046708Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-18T11:18:00.1046813Z               "line": 113
2026-06-18T11:18:00.1046908Z             }
2026-06-18T11:18:00.1046995Z           ]
2026-06-18T11:18:00.1047084Z         },
2026-06-18T11:18:00.1047169Z         "unit": {
2026-06-18T11:18:00.1047267Z           "complete": true,
2026-06-18T11:18:00.1047362Z           "evidence": [
2026-06-18T11:18:00.1047450Z             {
2026-06-18T11:18:00.1047574Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T11:18:00.1047660Z               "line": 203
2026-06-18T11:18:00.1047744Z             },
2026-06-18T11:18:00.1047834Z             {
2026-06-18T11:18:00.1047949Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T11:18:00.1048040Z               "line": 232
2026-06-18T11:18:00.1048134Z             },
2026-06-18T11:18:00.1048225Z             {
2026-06-18T11:18:00.1048330Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T11:18:00.1048425Z               "line": 277
2026-06-18T11:18:00.1048516Z             },
2026-06-18T11:18:00.1048598Z             {
2026-06-18T11:18:00.1048716Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T11:18:00.1048802Z               "line": 300
2026-06-18T11:18:00.1048889Z             },
2026-06-18T11:18:00.1049092Z             {
2026-06-18T11:18:00.1049203Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T11:18:00.1049298Z               "line": 325
2026-06-18T11:18:00.1049383Z             },
2026-06-18T11:18:00.1049470Z             {
2026-06-18T11:18:00.1049599Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-18T11:18:00.1049689Z               "line": 204
2026-06-18T11:18:00.1049775Z             },
2026-06-18T11:18:00.1049867Z             {
2026-06-18T11:18:00.1049989Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-18T11:18:00.1050085Z               "line": 237
2026-06-18T11:18:00.1050167Z             },
2026-06-18T11:18:00.1050256Z             {
2026-06-18T11:18:00.1050370Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-18T11:18:00.1050460Z               "line": 251
2026-06-18T11:18:00.1050551Z             },
2026-06-18T11:18:00.1050639Z             {
2026-06-18T11:18:00.1050759Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-18T11:18:00.1050850Z               "line": 263
2026-06-18T11:18:00.1050944Z             },
2026-06-18T11:18:00.1051035Z             {
2026-06-18T11:18:00.1051146Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-18T11:18:00.1051236Z               "line": 162
2026-06-18T11:18:00.1051316Z             },
2026-06-18T11:18:00.1051407Z             {
2026-06-18T11:18:00.1051512Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-18T11:18:00.1051607Z               "line": 242
2026-06-18T11:18:00.1051703Z             },
2026-06-18T11:18:00.1051785Z             {
2026-06-18T11:18:00.1051894Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-18T11:18:00.1051989Z               "line": 134
2026-06-18T11:18:00.1052076Z             },
2026-06-18T11:18:00.1052156Z             {
2026-06-18T11:18:00.1052255Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-18T11:18:00.1052452Z               "line": 153
2026-06-18T11:18:00.1052537Z             }
2026-06-18T11:18:00.1052623Z           ]
2026-06-18T11:18:00.1052700Z         }
2026-06-18T11:18:00.1052786Z       }
2026-06-18T11:18:00.1052875Z     },
2026-06-18T11:18:00.1052955Z     {
2026-06-18T11:18:00.1053046Z       "id": "REQ-MSG-2",
2026-06-18T11:18:00.1053316Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-18T11:18:00.1053412Z       "requiredStages": [
2026-06-18T11:18:00.1053497Z         "impl",
2026-06-18T11:18:00.1053591Z         "unit"
2026-06-18T11:18:00.1053779Z       ],
2026-06-18T11:18:00.1053869Z       "stages": {
2026-06-18T11:18:00.1053950Z         "doc": {
2026-06-18T11:18:00.1054036Z           "complete": false,
2026-06-18T11:18:00.1054131Z           "evidence": []
2026-06-18T11:18:00.1054212Z         },
2026-06-18T11:18:00.1054304Z         "impl": {
2026-06-18T11:18:00.1054403Z           "complete": true,
2026-06-18T11:18:00.1054503Z           "evidence": [
2026-06-18T11:18:00.1054594Z             {
2026-06-18T11:18:00.1054699Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1054794Z               "line": 11
2026-06-18T11:18:00.1054879Z             },
2026-06-18T11:18:00.1054967Z             {
2026-06-18T11:18:00.1055080Z               "path": "crates/spt/src/main.rs",
2026-06-18T11:18:00.1055171Z               "line": 8
2026-06-18T11:18:00.1055262Z             }
2026-06-18T11:18:00.1055347Z           ]
2026-06-18T11:18:00.1055432Z         },
2026-06-18T11:18:00.1055514Z         "int": {
2026-06-18T11:18:00.1055615Z           "complete": false,
2026-06-18T11:18:00.1055709Z           "evidence": []
2026-06-18T11:18:00.1055803Z         },
2026-06-18T11:18:00.1055889Z         "unit": {
2026-06-18T11:18:00.1055986Z           "complete": true,
2026-06-18T11:18:00.1056085Z           "evidence": [
2026-06-18T11:18:00.1056161Z             {
2026-06-18T11:18:00.1056277Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1056367Z               "line": 7556
2026-06-18T11:18:00.1056456Z             },
2026-06-18T11:18:00.1056549Z             {
2026-06-18T11:18:00.1056653Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1056752Z               "line": 7598
2026-06-18T11:18:00.1056838Z             },
2026-06-18T11:18:00.1056929Z             {
2026-06-18T11:18:00.1057030Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1057115Z               "line": 7647
2026-06-18T11:18:00.1057206Z             },
2026-06-18T11:18:00.1057296Z             {
2026-06-18T11:18:00.1057392Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1057488Z               "line": 7670
2026-06-18T11:18:00.1057583Z             },
2026-06-18T11:18:00.1057667Z             {
2026-06-18T11:18:00.1057773Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1057865Z               "line": 9577
2026-06-18T11:18:00.1057949Z             },
2026-06-18T11:18:00.1058044Z             {
2026-06-18T11:18:00.1058139Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1058234Z               "line": 9586
2026-06-18T11:18:00.1058327Z             },
2026-06-18T11:18:00.1058418Z             {
2026-06-18T11:18:00.1058524Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1058614Z               "line": 9600
2026-06-18T11:18:00.1058704Z             }
2026-06-18T11:18:00.1058786Z           ]
2026-06-18T11:18:00.1058876Z         }
2026-06-18T11:18:00.1059038Z       }
2026-06-18T11:18:00.1059125Z     },
2026-06-18T11:18:00.1059205Z     {
2026-06-18T11:18:00.1059295Z       "id": "REQ-MSG-3",
2026-06-18T11:18:00.1059677Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-18T11:18:00.1059768Z       "requiredStages": [
2026-06-18T11:18:00.1059858Z         "impl",
2026-06-18T11:18:00.1059948Z         "unit",
2026-06-18T11:18:00.1060126Z         "int"
2026-06-18T11:18:00.1060215Z       ],
2026-06-18T11:18:00.1060301Z       "stages": {
2026-06-18T11:18:00.1060388Z         "doc": {
2026-06-18T11:18:00.1060483Z           "complete": false,
2026-06-18T11:18:00.1060578Z           "evidence": []
2026-06-18T11:18:00.1060665Z         },
2026-06-18T11:18:00.1060751Z         "impl": {
2026-06-18T11:18:00.1060845Z           "complete": true,
2026-06-18T11:18:00.1060939Z           "evidence": [
2026-06-18T11:18:00.1061030Z             {
2026-06-18T11:18:00.1061153Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-18T11:18:00.1061242Z               "line": 19
2026-06-18T11:18:00.1061419Z             },
2026-06-18T11:18:00.1061500Z             {
2026-06-18T11:18:00.1061618Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T11:18:00.1061711Z               "line": 21
2026-06-18T11:18:00.1061796Z             },
2026-06-18T11:18:00.1061871Z             {
2026-06-18T11:18:00.1061982Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T11:18:00.1062082Z               "line": 48
2026-06-18T11:18:00.1062158Z             },
2026-06-18T11:18:00.1062248Z             {
2026-06-18T11:18:00.1062359Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T11:18:00.1062449Z               "line": 172
2026-06-18T11:18:00.1062539Z             }
2026-06-18T11:18:00.1062626Z           ]
2026-06-18T11:18:00.1062716Z         },
2026-06-18T11:18:00.1062792Z         "int": {
2026-06-18T11:18:00.1062887Z           "complete": true,
2026-06-18T11:18:00.1062979Z           "evidence": [
2026-06-18T11:18:00.1063068Z             {
2026-06-18T11:18:00.1063193Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-18T11:18:00.1063289Z               "line": 10
2026-06-18T11:18:00.1063378Z             },
2026-06-18T11:18:00.1063454Z             {
2026-06-18T11:18:00.1063587Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-18T11:18:00.1063682Z               "line": 56
2026-06-18T11:18:00.1063776Z             }
2026-06-18T11:18:00.1063856Z           ]
2026-06-18T11:18:00.1063938Z         },
2026-06-18T11:18:00.1064029Z         "unit": {
2026-06-18T11:18:00.1064119Z           "complete": true,
2026-06-18T11:18:00.1064214Z           "evidence": [
2026-06-18T11:18:00.1064301Z             {
2026-06-18T11:18:00.1064414Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T11:18:00.1064495Z               "line": 226
2026-06-18T11:18:00.1064582Z             },
2026-06-18T11:18:00.1064673Z             {
2026-06-18T11:18:00.1064777Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T11:18:00.1064873Z               "line": 245
2026-06-18T11:18:00.1064963Z             },
2026-06-18T11:18:00.1065049Z             {
2026-06-18T11:18:00.1065154Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T11:18:00.1065249Z               "line": 268
2026-06-18T11:18:00.1065335Z             }
2026-06-18T11:18:00.1065421Z           ]
2026-06-18T11:18:00.1065503Z         }
2026-06-18T11:18:00.1065592Z       }
2026-06-18T11:18:00.1065673Z     },
2026-06-18T11:18:00.1065759Z     {
2026-06-18T11:18:00.1065852Z       "id": "REQ-MSG-4",
2026-06-18T11:18:00.1066692Z       "title": "Listener stream stdout emits EVENT envelope lines (sister-format, ADR-0001): parse the __REPLY_TO__ frame, pass pre-formed typed envelopes through verbatim (no double-wrap), compose <EVENT type=\"msg\" from=…> otherwise, chunk oversized lines into EVENT-PART",
2026-06-18T11:18:00.1066789Z       "requiredStages": [
2026-06-18T11:18:00.1066884Z         "impl",
2026-06-18T11:18:00.1066969Z         "unit",
2026-06-18T11:18:00.1067065Z         "int"
2026-06-18T11:18:00.1067156Z       ],
2026-06-18T11:18:00.1067251Z       "stages": {
2026-06-18T11:18:00.1067336Z         "doc": {
2026-06-18T11:18:00.1067433Z           "complete": false,
2026-06-18T11:18:00.1067528Z           "evidence": []
2026-06-18T11:18:00.1067608Z         },
2026-06-18T11:18:00.1067704Z         "impl": {
2026-06-18T11:18:00.1067800Z           "complete": true,
2026-06-18T11:18:00.1067985Z           "evidence": [
2026-06-18T11:18:00.1068068Z             {
2026-06-18T11:18:00.1068176Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T11:18:00.1068271Z               "line": 19
2026-06-18T11:18:00.1068357Z             },
2026-06-18T11:18:00.1068439Z             {
2026-06-18T11:18:00.1068543Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T11:18:00.1068637Z               "line": 46
2026-06-18T11:18:00.1068719Z             },
2026-06-18T11:18:00.1068803Z             {
2026-06-18T11:18:00.1068926Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1069098Z               "line": 501
2026-06-18T11:18:00.1069278Z             },
2026-06-18T11:18:00.1069360Z             {
2026-06-18T11:18:00.1069460Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1069555Z               "line": 2981
2026-06-18T11:18:00.1069641Z             }
2026-06-18T11:18:00.1069728Z           ]
2026-06-18T11:18:00.1069822Z         },
2026-06-18T11:18:00.1069907Z         "int": {
2026-06-18T11:18:00.1069999Z           "complete": true,
2026-06-18T11:18:00.1070080Z           "evidence": [
2026-06-18T11:18:00.1070161Z             {
2026-06-18T11:18:00.1070280Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-18T11:18:00.1070367Z               "line": 98
2026-06-18T11:18:00.1070471Z             },
2026-06-18T11:18:00.1070605Z             {
2026-06-18T11:18:00.1070775Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-18T11:18:00.1070910Z               "line": 128
2026-06-18T11:18:00.1071104Z             }
2026-06-18T11:18:00.1071220Z           ]
2026-06-18T11:18:00.1071349Z         },
2026-06-18T11:18:00.1071485Z         "unit": {
2026-06-18T11:18:00.1071638Z           "complete": true,
2026-06-18T11:18:00.1071774Z           "evidence": [
2026-06-18T11:18:00.1071898Z             {
2026-06-18T11:18:00.1072070Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T11:18:00.1072193Z               "line": 68
2026-06-18T11:18:00.1072322Z             },
2026-06-18T11:18:00.1072431Z             {
2026-06-18T11:18:00.1072600Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T11:18:00.1072760Z               "line": 79
2026-06-18T11:18:00.1072895Z             },
2026-06-18T11:18:00.1073024Z             {
2026-06-18T11:18:00.1073201Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T11:18:00.1073347Z               "line": 90
2026-06-18T11:18:00.1073477Z             },
2026-06-18T11:18:00.1073610Z             {
2026-06-18T11:18:00.1073782Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T11:18:00.1073920Z               "line": 151
2026-06-18T11:18:00.1074075Z             }
2026-06-18T11:18:00.1074214Z           ]
2026-06-18T11:18:00.1074341Z         }
2026-06-18T11:18:00.1074469Z       }
2026-06-18T11:18:00.1074589Z     },
2026-06-18T11:18:00.1074717Z     {
2026-06-18T11:18:00.1074856Z       "id": "REQ-MSG-5",
2026-06-18T11:18:00.1075938Z       "title": "user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user-msg (the user's authority); agent-family senders re-stamped to plain msg; identity-gated never payload-trusted (KH 7.3/7.5); wire-additive (N-1 receivers tolerate the new type)",
2026-06-18T11:18:00.1076111Z       "requiredStages": [
2026-06-18T11:18:00.1076243Z         "doc",
2026-06-18T11:18:00.1076382Z         "impl",
2026-06-18T11:18:00.1076509Z         "unit"
2026-06-18T11:18:00.1076639Z       ],
2026-06-18T11:18:00.1076778Z       "stages": {
2026-06-18T11:18:00.1076910Z         "doc": {
2026-06-18T11:18:00.1077053Z           "complete": true,
2026-06-18T11:18:00.1077186Z           "evidence": [
2026-06-18T11:18:00.1077320Z             {
2026-06-18T11:18:00.1077468Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.1077615Z               "line": 231
2026-06-18T11:18:00.1077735Z             }
2026-06-18T11:18:00.1077858Z           ]
2026-06-18T11:18:00.1078022Z         },
2026-06-18T11:18:00.1078154Z         "impl": {
2026-06-18T11:18:00.1078497Z           "complete": true,
2026-06-18T11:18:00.1078628Z           "evidence": [
2026-06-18T11:18:00.1078769Z             {
2026-06-18T11:18:00.1079032Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-18T11:18:00.1079173Z               "line": 60
2026-06-18T11:18:00.1079302Z             },
2026-06-18T11:18:00.1079429Z             {
2026-06-18T11:18:00.1079606Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:18:00.1079734Z               "line": 126
2026-06-18T11:18:00.1079872Z             },
2026-06-18T11:18:00.1079997Z             {
2026-06-18T11:18:00.1080182Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:18:00.1080521Z               "line": 135
2026-06-18T11:18:00.1080645Z             },
2026-06-18T11:18:00.1080773Z             {
2026-06-18T11:18:00.1080945Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:18:00.1081088Z               "line": 149
2026-06-18T11:18:00.1081218Z             },
2026-06-18T11:18:00.1081365Z             {
2026-06-18T11:18:00.1081537Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:18:00.1081689Z               "line": 178
2026-06-18T11:18:00.1081819Z             },
2026-06-18T11:18:00.1081951Z             {
2026-06-18T11:18:00.1082112Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1082254Z               "line": 2673
2026-06-18T11:18:00.1082386Z             }
2026-06-18T11:18:00.1082501Z           ]
2026-06-18T11:18:00.1082592Z         },
2026-06-18T11:18:00.1082691Z         "int": {
2026-06-18T11:18:00.1082783Z           "complete": true,
2026-06-18T11:18:00.1082878Z           "evidence": [
2026-06-18T11:18:00.1082977Z             {
2026-06-18T11:18:00.1083107Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-18T11:18:00.1083202Z               "line": 19
2026-06-18T11:18:00.1083292Z             }
2026-06-18T11:18:00.1083378Z           ]
2026-06-18T11:18:00.1083465Z         },
2026-06-18T11:18:00.1083554Z         "unit": {
2026-06-18T11:18:00.1083664Z           "complete": true,
2026-06-18T11:18:00.1083761Z           "evidence": [
2026-06-18T11:18:00.1083846Z             {
2026-06-18T11:18:00.1083964Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-18T11:18:00.1084061Z               "line": 192
2026-06-18T11:18:00.1084147Z             },
2026-06-18T11:18:00.1084231Z             {
2026-06-18T11:18:00.1084357Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-18T11:18:00.1084457Z               "line": 154
2026-06-18T11:18:00.1084536Z             },
2026-06-18T11:18:00.1084617Z             {
2026-06-18T11:18:00.1084731Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T11:18:00.1084830Z               "line": 122
2026-06-18T11:18:00.1084910Z             },
2026-06-18T11:18:00.1084996Z             {
2026-06-18T11:18:00.1085121Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:18:00.1085206Z               "line": 452
2026-06-18T11:18:00.1085301Z             },
2026-06-18T11:18:00.1085402Z             {
2026-06-18T11:18:00.1085516Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:18:00.1085606Z               "line": 501
2026-06-18T11:18:00.1085693Z             },
2026-06-18T11:18:00.1085783Z             {
2026-06-18T11:18:00.1085892Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:18:00.1085993Z               "line": 517
2026-06-18T11:18:00.1086083Z             },
2026-06-18T11:18:00.1086160Z             {
2026-06-18T11:18:00.1086274Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:18:00.1086370Z               "line": 536
2026-06-18T11:18:00.1086465Z             },
2026-06-18T11:18:00.1086560Z             {
2026-06-18T11:18:00.1086676Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1086769Z               "line": 7499
2026-06-18T11:18:00.1086851Z             }
2026-06-18T11:18:00.1086947Z           ]
2026-06-18T11:18:00.1087033Z         }
2026-06-18T11:18:00.1087118Z       }
2026-06-18T11:18:00.1087348Z     },
2026-06-18T11:18:00.1087446Z     {
2026-06-18T11:18:00.1087546Z       "id": "REQ-MSG-6",
2026-06-18T11:18:00.1089202Z       "title": "cross-node Gateway user-msg honored via advertised endpoint_type: a user-msg from a Gateway-typed origin survives the receive_wan funnel as user-msg (vs the fail-closed re-stamp), keyed on the QUIC-handshake-proven origin node (never wire `from`). Trust boundary = subnet membership (operator-ratified 2026-06-13); no defense against an in-subnet member forging the type. Instance.endpoint_type is an additive serde-default field extending REQ-INST-7's data model. Absent/unknown type → re-stamp (N-1 rollout grace)",
2026-06-18T11:18:00.1089420Z       "requiredStages": [
2026-06-18T11:18:00.1089522Z         "doc",
2026-06-18T11:18:00.1089602Z         "impl",
2026-06-18T11:18:00.1089696Z         "unit"
2026-06-18T11:18:00.1089781Z       ],
2026-06-18T11:18:00.1089872Z       "stages": {
2026-06-18T11:18:00.1089965Z         "doc": {
2026-06-18T11:18:00.1090074Z           "complete": true,
2026-06-18T11:18:00.1090175Z           "evidence": [
2026-06-18T11:18:00.1090252Z             {
2026-06-18T11:18:00.1090361Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.1090446Z               "line": 234
2026-06-18T11:18:00.1090538Z             }
2026-06-18T11:18:00.1090623Z           ]
2026-06-18T11:18:00.1090713Z         },
2026-06-18T11:18:00.1090805Z         "impl": {
2026-06-18T11:18:00.1090905Z           "complete": true,
2026-06-18T11:18:00.1091000Z           "evidence": [
2026-06-18T11:18:00.1091086Z             {
2026-06-18T11:18:00.1091243Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1091386Z               "line": 177
2026-06-18T11:18:00.1091472Z             },
2026-06-18T11:18:00.1091567Z             {
2026-06-18T11:18:00.1091691Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1091782Z               "line": 428
2026-06-18T11:18:00.1091868Z             },
2026-06-18T11:18:00.1091958Z             {
2026-06-18T11:18:00.1092088Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1092187Z               "line": 451
2026-06-18T11:18:00.1092283Z             },
2026-06-18T11:18:00.1092369Z             {
2026-06-18T11:18:00.1092497Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-18T11:18:00.1092577Z               "line": 89
2026-06-18T11:18:00.1092663Z             },
2026-06-18T11:18:00.1092748Z             {
2026-06-18T11:18:00.1092875Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.1092975Z               "line": 155
2026-06-18T11:18:00.1093061Z             }
2026-06-18T11:18:00.1093162Z           ]
2026-06-18T11:18:00.1093251Z         },
2026-06-18T11:18:00.1093343Z         "int": {
2026-06-18T11:18:00.1093443Z           "complete": false,
2026-06-18T11:18:00.1093547Z           "evidence": []
2026-06-18T11:18:00.1093638Z         },
2026-06-18T11:18:00.1093729Z         "unit": {
2026-06-18T11:18:00.1093820Z           "complete": true,
2026-06-18T11:18:00.1093919Z           "evidence": [
2026-06-18T11:18:00.1094010Z             {
2026-06-18T11:18:00.1094129Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1094219Z               "line": 1746
2026-06-18T11:18:00.1094316Z             },
2026-06-18T11:18:00.1094406Z             {
2026-06-18T11:18:00.1094520Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-18T11:18:00.1094602Z               "line": 219
2026-06-18T11:18:00.1094698Z             }
2026-06-18T11:18:00.1094782Z           ]
2026-06-18T11:18:00.1094878Z         }
2026-06-18T11:18:00.1094969Z       }
2026-06-18T11:18:00.1095055Z     },
2026-06-18T11:18:00.1095153Z     {
2026-06-18T11:18:00.1095258Z       "id": "REQ-MSG-ENVELOPE",
2026-06-18T11:18:00.1098874Z       "title": "The <EVENT type=\"msg\" from=…>body</EVENT> envelope (spt-proto::event, the ADR-0001 grammar) is the SOLE canonical arriving-message format at EVERY harness arriving-message surface on an AGENT perch — api listen AND api poll/worker-poll, byte-identical (reverses REQ-MSG-4's 'hook drains keep the raw frame by contract'). SCOPE CARVE-OUT: the shell-command relay (api poll <shell-id> --link, cmd_poll_shell) is a distinct internal transport carrying RAW MAC'd stamped frames the shell child consumes verbatim — NOT an arriving-message surface, deliberately EXEMPT from <EVENT> composition (notify_shell_e2e guards this boundary). __REPLY_TO__ — mis-elevated during the clean-room port to a fake ADR-0001 'stable wire format' (spt-msg/wire.rs, lib.rs) — is REMOVED entirely (spool format_row, the spt-msg TCP frame, emit parse_frame); (from, body) carried structurally, <EVENT> composed once at the delivery boundary. No legacy sister-interop (spt-core never required it). Reply-correlation rebinds onto the structural from / <EVENT from=…> attribute (ADR-0009 access-gate + ADR-0012 Psyche/spt-live reply-target). Self-delimiting by construction → finding F-002 (non-self-delimiting multi-message poll) dissolves. ADR-0020.",
2026-06-18T11:18:00.1099288Z       "requiredStages": [
2026-06-18T11:18:00.1099384Z         "doc",
2026-06-18T11:18:00.1099480Z         "impl",
2026-06-18T11:18:00.1099589Z         "unit",
2026-06-18T11:18:00.1099680Z         "int"
2026-06-18T11:18:00.1099762Z       ],
2026-06-18T11:18:00.1099861Z       "stages": {
2026-06-18T11:18:00.1099942Z         "doc": {
2026-06-18T11:18:00.1100043Z           "complete": true,
2026-06-18T11:18:00.1100129Z           "evidence": [
2026-06-18T11:18:00.1100213Z             {
2026-06-18T11:18:00.1100455Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
2026-06-18T11:18:00.1100554Z               "line": 47
2026-06-18T11:18:00.1100658Z             }
2026-06-18T11:18:00.1100750Z           ]
2026-06-18T11:18:00.1100836Z         },
2026-06-18T11:18:00.1100926Z         "impl": {
2026-06-18T11:18:00.1101021Z           "complete": true,
2026-06-18T11:18:00.1101117Z           "evidence": [
2026-06-18T11:18:00.1101202Z             {
2026-06-18T11:18:00.1101322Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T11:18:00.1101413Z               "line": 20
2026-06-18T11:18:00.1101498Z             },
2026-06-18T11:18:00.1101583Z             {
2026-06-18T11:18:00.1101704Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T11:18:00.1101794Z               "line": 33
2026-06-18T11:18:00.1101879Z             },
2026-06-18T11:18:00.1101961Z             {
2026-06-18T11:18:00.1102070Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T11:18:00.1102160Z               "line": 47
2026-06-18T11:18:00.1102246Z             },
2026-06-18T11:18:00.1102329Z             {
2026-06-18T11:18:00.1102451Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T11:18:00.1102537Z               "line": 58
2026-06-18T11:18:00.1102634Z             },
2026-06-18T11:18:00.1102719Z             {
2026-06-18T11:18:00.1102828Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-18T11:18:00.1102929Z               "line": 14
2026-06-18T11:18:00.1103015Z             },
2026-06-18T11:18:00.1103109Z             {
2026-06-18T11:18:00.1103218Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-18T11:18:00.1103318Z               "line": 27
2026-06-18T11:18:00.1103407Z             },
2026-06-18T11:18:00.1103492Z             {
2026-06-18T11:18:00.1103598Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-18T11:18:00.1103688Z               "line": 40
2026-06-18T11:18:00.1103769Z             },
2026-06-18T11:18:00.1103850Z             {
2026-06-18T11:18:00.1103975Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T11:18:00.1104065Z               "line": 92
2026-06-18T11:18:00.1104164Z             },
2026-06-18T11:18:00.1104251Z             {
2026-06-18T11:18:00.1104375Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T11:18:00.1104474Z               "line": 143
2026-06-18T11:18:00.1104552Z             },
2026-06-18T11:18:00.1104646Z             {
2026-06-18T11:18:00.1104756Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T11:18:00.1104952Z               "line": 216
2026-06-18T11:18:00.1105042Z             },
2026-06-18T11:18:00.1105123Z             {
2026-06-18T11:18:00.1105243Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1105337Z               "line": 502
2026-06-18T11:18:00.1105418Z             },
2026-06-18T11:18:00.1105506Z             {
2026-06-18T11:18:00.1105624Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T11:18:00.1105728Z               "line": 78
2026-06-18T11:18:00.1105813Z             },
2026-06-18T11:18:00.1105899Z             {
2026-06-18T11:18:00.1106011Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1106183Z               "line": 2982
2026-06-18T11:18:00.1106265Z             }
2026-06-18T11:18:00.1106354Z           ]
2026-06-18T11:18:00.1106445Z         },
2026-06-18T11:18:00.1106527Z         "int": {
2026-06-18T11:18:00.1106627Z           "complete": true,
2026-06-18T11:18:00.1106722Z           "evidence": [
2026-06-18T11:18:00.1106818Z             {
2026-06-18T11:18:00.1106956Z               "path": "crates/spt/tests/poll_envelope_e2e.rs",
2026-06-18T11:18:00.1107046Z               "line": 15
2026-06-18T11:18:00.1107137Z             }
2026-06-18T11:18:00.1107227Z           ]
2026-06-18T11:18:00.1107322Z         },
2026-06-18T11:18:00.1107399Z         "unit": {
2026-06-18T11:18:00.1107504Z           "complete": true,
2026-06-18T11:18:00.1107590Z           "evidence": [
2026-06-18T11:18:00.1107676Z             {
2026-06-18T11:18:00.1107791Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T11:18:00.1107880Z               "line": 102
2026-06-18T11:18:00.1107985Z             },
2026-06-18T11:18:00.1108068Z             {
2026-06-18T11:18:00.1108181Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T11:18:00.1108272Z               "line": 137
2026-06-18T11:18:00.1108368Z             },
2026-06-18T11:18:00.1108463Z             {
2026-06-18T11:18:00.1108566Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-18T11:18:00.1108676Z               "line": 98
2026-06-18T11:18:00.1108762Z             },
2026-06-18T11:18:00.1108862Z             {
2026-06-18T11:18:00.1109058Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-18T11:18:00.1109159Z               "line": 106
2026-06-18T11:18:00.1109252Z             },
2026-06-18T11:18:00.1109330Z             {
2026-06-18T11:18:00.1109448Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-18T11:18:00.1109543Z               "line": 113
2026-06-18T11:18:00.1109634Z             },
2026-06-18T11:18:00.1109721Z             {
2026-06-18T11:18:00.1109830Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-18T11:18:00.1109939Z               "line": 122
2026-06-18T11:18:00.1110017Z             }
2026-06-18T11:18:00.1110101Z           ]
2026-06-18T11:18:00.1110187Z         }
2026-06-18T11:18:00.1110269Z       }
2026-06-18T11:18:00.1110351Z     },
2026-06-18T11:18:00.1110444Z     {
2026-06-18T11:18:00.1110540Z       "id": "REQ-NET-1",
2026-06-18T11:18:00.1110736Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-18T11:18:00.1110840Z       "requiredStages": [
2026-06-18T11:18:00.1110926Z         "impl",
2026-06-18T11:18:00.1111020Z         "unit",
2026-06-18T11:18:00.1111104Z         "int"
2026-06-18T11:18:00.1111204Z       ],
2026-06-18T11:18:00.1111295Z       "stages": {
2026-06-18T11:18:00.1111386Z         "doc": {
2026-06-18T11:18:00.1111490Z           "complete": false,
2026-06-18T11:18:00.1111586Z           "evidence": []
2026-06-18T11:18:00.1111672Z         },
2026-06-18T11:18:00.1111757Z         "impl": {
2026-06-18T11:18:00.1111862Z           "complete": true,
2026-06-18T11:18:00.1111958Z           "evidence": [
2026-06-18T11:18:00.1112035Z             {
2026-06-18T11:18:00.1112167Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T11:18:00.1112259Z               "line": 54
2026-06-18T11:18:00.1112354Z             },
2026-06-18T11:18:00.1112444Z             {
2026-06-18T11:18:00.1112693Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T11:18:00.1112797Z               "line": 594
2026-06-18T11:18:00.1112875Z             },
2026-06-18T11:18:00.1112973Z             {
2026-06-18T11:18:00.1113083Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-18T11:18:00.1113184Z               "line": 130
2026-06-18T11:18:00.1113265Z             },
2026-06-18T11:18:00.1113364Z             {
2026-06-18T11:18:00.1113499Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T11:18:00.1113594Z               "line": 97
2026-06-18T11:18:00.1113674Z             },
2026-06-18T11:18:00.1113768Z             {
2026-06-18T11:18:00.1113986Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T11:18:00.1114090Z               "line": 159
2026-06-18T11:18:00.1114172Z             },
2026-06-18T11:18:00.1114263Z             {
2026-06-18T11:18:00.1114381Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T11:18:00.1114483Z               "line": 175
2026-06-18T11:18:00.1114563Z             },
2026-06-18T11:18:00.1114653Z             {
2026-06-18T11:18:00.1114778Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T11:18:00.1114863Z               "line": 190
2026-06-18T11:18:00.1114958Z             },
2026-06-18T11:18:00.1115049Z             {
2026-06-18T11:18:00.1115174Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T11:18:00.1115259Z               "line": 271
2026-06-18T11:18:00.1115354Z             },
2026-06-18T11:18:00.1115451Z             {
2026-06-18T11:18:00.1115573Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T11:18:00.1115683Z               "line": 306
2026-06-18T11:18:00.1115761Z             },
2026-06-18T11:18:00.1115855Z             {
2026-06-18T11:18:00.1115969Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T11:18:00.1116061Z               "line": 312
2026-06-18T11:18:00.1120117Z             },
2026-06-18T11:18:00.1120267Z             {
2026-06-18T11:18:00.1120414Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T11:18:00.1120514Z               "line": 318
2026-06-18T11:18:00.1120605Z             },
2026-06-18T11:18:00.1120690Z             {
2026-06-18T11:18:00.1120829Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T11:18:00.1120925Z               "line": 334
2026-06-18T11:18:00.1121004Z             },
2026-06-18T11:18:00.1121086Z             {
2026-06-18T11:18:00.1121211Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T11:18:00.1121296Z               "line": 354
2026-06-18T11:18:00.1121381Z             },
2026-06-18T11:18:00.1121486Z             {
2026-06-18T11:18:00.1121609Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-18T11:18:00.1121707Z               "line": 35
2026-06-18T11:18:00.1121788Z             },
2026-06-18T11:18:00.1121870Z             {
2026-06-18T11:18:00.1121988Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-18T11:18:00.1122093Z               "line": 85
2026-06-18T11:18:00.1122180Z             },
2026-06-18T11:18:00.1122256Z             {
2026-06-18T11:18:00.1122379Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T11:18:00.1122466Z               "line": 138
2026-06-18T11:18:00.1122551Z             },
2026-06-18T11:18:00.1122632Z             {
2026-06-18T11:18:00.1122747Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1122848Z               "line": 2824
2026-06-18T11:18:00.1122933Z             },
2026-06-18T11:18:00.1123013Z             {
2026-06-18T11:18:00.1123124Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T11:18:00.1123228Z               "line": 17
2026-06-18T11:18:00.1123314Z             }
2026-06-18T11:18:00.1123401Z           ]
2026-06-18T11:18:00.1123496Z         },
2026-06-18T11:18:00.1123576Z         "int": {
2026-06-18T11:18:00.1123677Z           "complete": true,
2026-06-18T11:18:00.1123759Z           "evidence": [
2026-06-18T11:18:00.1123987Z             {
2026-06-18T11:18:00.1124126Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T11:18:00.1124220Z               "line": 341
2026-06-18T11:18:00.1124300Z             },
2026-06-18T11:18:00.1124376Z             {
2026-06-18T11:18:00.1124508Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1124589Z               "line": 674
2026-06-18T11:18:00.1124670Z             },
2026-06-18T11:18:00.1124751Z             {
2026-06-18T11:18:00.1124880Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1124965Z               "line": 972
2026-06-18T11:18:00.1125048Z             }
2026-06-18T11:18:00.1125242Z           ]
2026-06-18T11:18:00.1125328Z         },
2026-06-18T11:18:00.1125414Z         "unit": {
2026-06-18T11:18:00.1125514Z           "complete": true,
2026-06-18T11:18:00.1125599Z           "evidence": [
2026-06-18T11:18:00.1125687Z             {
2026-06-18T11:18:00.1125810Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T11:18:00.1125914Z               "line": 651
2026-06-18T11:18:00.1126002Z             },
2026-06-18T11:18:00.1126100Z             {
2026-06-18T11:18:00.1126224Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T11:18:00.1126326Z               "line": 686
2026-06-18T11:18:00.1126415Z             },
2026-06-18T11:18:00.1126501Z             {
2026-06-18T11:18:00.1126646Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T11:18:00.1126739Z               "line": 938
2026-06-18T11:18:00.1126815Z             },
2026-06-18T11:18:00.1126900Z             {
2026-06-18T11:18:00.1127019Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-18T11:18:00.1127122Z               "line": 201
2026-06-18T11:18:00.1127207Z             },
2026-06-18T11:18:00.1127303Z             {
2026-06-18T11:18:00.1127427Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T11:18:00.1127527Z               "line": 442
2026-06-18T11:18:00.1127614Z             },
2026-06-18T11:18:00.1127699Z             {
2026-06-18T11:18:00.1127822Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T11:18:00.1127910Z               "line": 456
2026-06-18T11:18:00.1128010Z             },
2026-06-18T11:18:00.1128090Z             {
2026-06-18T11:18:00.1128215Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T11:18:00.1128305Z               "line": 475
2026-06-18T11:18:00.1128386Z             },
2026-06-18T11:18:00.1128471Z             {
2026-06-18T11:18:00.1128592Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-18T11:18:00.1128691Z               "line": 120
2026-06-18T11:18:00.1128786Z             },
2026-06-18T11:18:00.1128883Z             {
2026-06-18T11:18:00.1129077Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-18T11:18:00.1129164Z               "line": 163
2026-06-18T11:18:00.1129250Z             },
2026-06-18T11:18:00.1129334Z             {
2026-06-18T11:18:00.1129450Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T11:18:00.1129550Z               "line": 530
2026-06-18T11:18:00.1129635Z             },
2026-06-18T11:18:00.1129715Z             {
2026-06-18T11:18:00.1129825Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T11:18:00.1129926Z               "line": 616
2026-06-18T11:18:00.1130006Z             },
2026-06-18T11:18:00.1130096Z             {
2026-06-18T11:18:00.1130202Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T11:18:00.1130302Z               "line": 1006
2026-06-18T11:18:00.1130387Z             }
2026-06-18T11:18:00.1130469Z           ]
2026-06-18T11:18:00.1130555Z         }
2026-06-18T11:18:00.1130650Z       }
2026-06-18T11:18:00.1130731Z     },
2026-06-18T11:18:00.1130803Z     {
2026-06-18T11:18:00.1130893Z       "id": "REQ-NET-2",
2026-06-18T11:18:00.1131094Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-18T11:18:00.1131194Z       "requiredStages": [
2026-06-18T11:18:00.1131375Z         "impl"
2026-06-18T11:18:00.1131456Z       ],
2026-06-18T11:18:00.1131555Z       "stages": {
2026-06-18T11:18:00.1131632Z         "doc": {
2026-06-18T11:18:00.1131733Z           "complete": false,
2026-06-18T11:18:00.1131823Z           "evidence": []
2026-06-18T11:18:00.1131908Z         },
2026-06-18T11:18:00.1131988Z         "impl": {
2026-06-18T11:18:00.1132088Z           "complete": true,
2026-06-18T11:18:00.1132178Z           "evidence": [
2026-06-18T11:18:00.1132267Z             {
2026-06-18T11:18:00.1132396Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-18T11:18:00.1132493Z               "line": 57
2026-06-18T11:18:00.1132572Z             },
2026-06-18T11:18:00.1132760Z             {
2026-06-18T11:18:00.1132887Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T11:18:00.1132982Z               "line": 71
2026-06-18T11:18:00.1133060Z             },
2026-06-18T11:18:00.1133145Z             {
2026-06-18T11:18:00.1133268Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T11:18:00.1133355Z               "line": 81
2026-06-18T11:18:00.1133445Z             },
2026-06-18T11:18:00.1133526Z             {
2026-06-18T11:18:00.1133651Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T11:18:00.1133746Z               "line": 159
2026-06-18T11:18:00.1133841Z             },
2026-06-18T11:18:00.1133922Z             {
2026-06-18T11:18:00.1134038Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T11:18:00.1134131Z               "line": 175
2026-06-18T11:18:00.1134213Z             },
2026-06-18T11:18:00.1134295Z             {
2026-06-18T11:18:00.1134418Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T11:18:00.1134523Z               "line": 190
2026-06-18T11:18:00.1134610Z             }
2026-06-18T11:18:00.1134696Z           ]
2026-06-18T11:18:00.1134784Z         },
2026-06-18T11:18:00.1134874Z         "int": {
2026-06-18T11:18:00.1134970Z           "complete": false,
2026-06-18T11:18:00.1135069Z           "evidence": []
2026-06-18T11:18:00.1135149Z         },
2026-06-18T11:18:00.1135245Z         "unit": {
2026-06-18T11:18:00.1135335Z           "complete": true,
2026-06-18T11:18:00.1135425Z           "evidence": [
2026-06-18T11:18:00.1135516Z             {
2026-06-18T11:18:00.1135631Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-18T11:18:00.1135731Z               "line": 402
2026-06-18T11:18:00.1135816Z             }
2026-06-18T11:18:00.1135898Z           ]
2026-06-18T11:18:00.1135988Z         }
2026-06-18T11:18:00.1136078Z       }
2026-06-18T11:18:00.1136155Z     },
2026-06-18T11:18:00.1136242Z     {
2026-06-18T11:18:00.1136331Z       "id": "REQ-NET-3",
2026-06-18T11:18:00.1136532Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-18T11:18:00.1136632Z       "requiredStages": [
2026-06-18T11:18:00.1136722Z         "impl",
2026-06-18T11:18:00.1136813Z         "unit"
2026-06-18T11:18:00.1136895Z       ],
2026-06-18T11:18:00.1136980Z       "stages": {
2026-06-18T11:18:00.1137066Z         "doc": {
2026-06-18T11:18:00.1137162Z           "complete": false,
2026-06-18T11:18:00.1137257Z           "evidence": []
2026-06-18T11:18:00.1137342Z         },
2026-06-18T11:18:00.1137436Z         "impl": {
2026-06-18T11:18:00.1137532Z           "complete": true,
2026-06-18T11:18:00.1137621Z           "evidence": [
2026-06-18T11:18:00.1137711Z             {
2026-06-18T11:18:00.1137835Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T11:18:00.1137922Z               "line": 39
2026-06-18T11:18:00.1138002Z             },
2026-06-18T11:18:00.1138087Z             {
2026-06-18T11:18:00.1138198Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T11:18:00.1138298Z               "line": 182
2026-06-18T11:18:00.1138383Z             },
2026-06-18T11:18:00.1138465Z             {
2026-06-18T11:18:00.1138584Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T11:18:00.1138664Z               "line": 333
2026-06-18T11:18:00.1138755Z             },
2026-06-18T11:18:00.1138913Z             {
2026-06-18T11:18:00.1139114Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-18T11:18:00.1139199Z               "line": 36
2026-06-18T11:18:00.1139280Z             },
2026-06-18T11:18:00.1139365Z             {
2026-06-18T11:18:00.1139518Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.1139609Z               "line": 158
2026-06-18T11:18:00.1139695Z             },
2026-06-18T11:18:00.1139777Z             {
2026-06-18T11:18:00.1139904Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.1139985Z               "line": 238
2026-06-18T11:18:00.1140078Z             },
2026-06-18T11:18:00.1140284Z             {
2026-06-18T11:18:00.1140418Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.1140505Z               "line": 259
2026-06-18T11:18:00.1140590Z             },
2026-06-18T11:18:00.1140675Z             {
2026-06-18T11:18:00.1140796Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.1140900Z               "line": 317
2026-06-18T11:18:00.1140986Z             },
2026-06-18T11:18:00.1141072Z             {
2026-06-18T11:18:00.1141177Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.1141271Z               "line": 336
2026-06-18T11:18:00.1141354Z             },
2026-06-18T11:18:00.1141434Z             {
2026-06-18T11:18:00.1141558Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.1141644Z               "line": 374
2026-06-18T11:18:00.1141735Z             },
2026-06-18T11:18:00.1141820Z             {
2026-06-18T11:18:00.1141944Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.1142050Z               "line": 419
2026-06-18T11:18:00.1142134Z             },
2026-06-18T11:18:00.1142220Z             {
2026-06-18T11:18:00.1142341Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.1142440Z               "line": 432
2026-06-18T11:18:00.1142530Z             },
2026-06-18T11:18:00.1142615Z             {
2026-06-18T11:18:00.1142743Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-18T11:18:00.1142832Z               "line": 29
2026-06-18T11:18:00.1142918Z             },
2026-06-18T11:18:00.1143000Z             {
2026-06-18T11:18:00.1143123Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-18T11:18:00.1143213Z               "line": 72
2026-06-18T11:18:00.1143300Z             },
2026-06-18T11:18:00.1143386Z             {
2026-06-18T11:18:00.1143504Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-18T11:18:00.1143601Z               "line": 123
2026-06-18T11:18:00.1143691Z             }
2026-06-18T11:18:00.1143772Z           ]
2026-06-18T11:18:00.1143867Z         },
2026-06-18T11:18:00.1143944Z         "int": {
2026-06-18T11:18:00.1144039Z           "complete": false,
2026-06-18T11:18:00.1144129Z           "evidence": []
2026-06-18T11:18:00.1144221Z         },
2026-06-18T11:18:00.1144306Z         "unit": {
2026-06-18T11:18:00.1144406Z           "complete": true,
2026-06-18T11:18:00.1144487Z           "evidence": [
2026-06-18T11:18:00.1144569Z             {
2026-06-18T11:18:00.1144696Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-18T11:18:00.1144782Z               "line": 223
2026-06-18T11:18:00.1144869Z             },
2026-06-18T11:18:00.1144955Z             {
2026-06-18T11:18:00.1145078Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-18T11:18:00.1145165Z               "line": 351
2026-06-18T11:18:00.1145247Z             },
2026-06-18T11:18:00.1145330Z             {
2026-06-18T11:18:00.1145444Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-18T11:18:00.1145540Z               "line": 504
2026-06-18T11:18:00.1145624Z             },
2026-06-18T11:18:00.1145699Z             {
2026-06-18T11:18:00.1145823Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-18T11:18:00.1145910Z               "line": 93
2026-06-18T11:18:00.1146099Z             },
2026-06-18T11:18:00.1146187Z             {
2026-06-18T11:18:00.1146305Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-18T11:18:00.1146391Z               "line": 142
2026-06-18T11:18:00.1146482Z             },
2026-06-18T11:18:00.1146567Z             {
2026-06-18T11:18:00.1146686Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-18T11:18:00.1146778Z               "line": 315
2026-06-18T11:18:00.1146854Z             },
2026-06-18T11:18:00.1146935Z             {
2026-06-18T11:18:00.1147039Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-18T11:18:00.1147136Z               "line": 355
2026-06-18T11:18:00.1147296Z             },
2026-06-18T11:18:00.1147383Z             {
2026-06-18T11:18:00.1147502Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-18T11:18:00.1147592Z               "line": 494
2026-06-18T11:18:00.1147669Z             }
2026-06-18T11:18:00.1147756Z           ]
2026-06-18T11:18:00.1147850Z         }
2026-06-18T11:18:00.1147945Z       }
2026-06-18T11:18:00.1148025Z     },
2026-06-18T11:18:00.1148111Z     {
2026-06-18T11:18:00.1148209Z       "id": "REQ-NODE-IDENTITY",
2026-06-18T11:18:00.1148438Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-18T11:18:00.1148533Z       "requiredStages": [
2026-06-18T11:18:00.1148623Z         "impl",
2026-06-18T11:18:00.1148705Z         "unit"
2026-06-18T11:18:00.1148791Z       ],
2026-06-18T11:18:00.1148881Z       "stages": {
2026-06-18T11:18:00.1149045Z         "doc": {
2026-06-18T11:18:00.1149139Z           "complete": false,
2026-06-18T11:18:00.1149229Z           "evidence": []
2026-06-18T11:18:00.1149330Z         },
2026-06-18T11:18:00.1149425Z         "impl": {
2026-06-18T11:18:00.1149506Z           "complete": true,
2026-06-18T11:18:00.1149606Z           "evidence": [
2026-06-18T11:18:00.1149684Z             {
2026-06-18T11:18:00.1149816Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-18T11:18:00.1149906Z               "line": 60
2026-06-18T11:18:00.1149994Z             },
2026-06-18T11:18:00.1150078Z             {
2026-06-18T11:18:00.1150192Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-18T11:18:00.1150294Z               "line": 68
2026-06-18T11:18:00.1150379Z             },
2026-06-18T11:18:00.1150464Z             {
2026-06-18T11:18:00.1150580Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-18T11:18:00.1150675Z               "line": 86
2026-06-18T11:18:00.1150755Z             },
2026-06-18T11:18:00.1150840Z             {
2026-06-18T11:18:00.1150955Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-18T11:18:00.1151051Z               "line": 120
2026-06-18T11:18:00.1151131Z             },
2026-06-18T11:18:00.1151217Z             {
2026-06-18T11:18:00.1151327Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-18T11:18:00.1151422Z               "line": 127
2026-06-18T11:18:00.1151502Z             },
2026-06-18T11:18:00.1151590Z             {
2026-06-18T11:18:00.1151708Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-18T11:18:00.1151789Z               "line": 143
2026-06-18T11:18:00.1151866Z             },
2026-06-18T11:18:00.1151952Z             {
2026-06-18T11:18:00.1152075Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-18T11:18:00.1152160Z               "line": 16
2026-06-18T11:18:00.1152252Z             }
2026-06-18T11:18:00.1152337Z           ]
2026-06-18T11:18:00.1152428Z         },
2026-06-18T11:18:00.1152505Z         "int": {
2026-06-18T11:18:00.1152605Z           "complete": false,
2026-06-18T11:18:00.1152695Z           "evidence": []
2026-06-18T11:18:00.1152790Z         },
2026-06-18T11:18:00.1152882Z         "unit": {
2026-06-18T11:18:00.1152971Z           "complete": true,
2026-06-18T11:18:00.1153061Z           "evidence": [
2026-06-18T11:18:00.1153137Z             {
2026-06-18T11:18:00.1153252Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-18T11:18:00.1153350Z               "line": 199
2026-06-18T11:18:00.1153535Z             },
2026-06-18T11:18:00.1153627Z             {
2026-06-18T11:18:00.1153740Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-18T11:18:00.1153832Z               "line": 218
2026-06-18T11:18:00.1153917Z             },
2026-06-18T11:18:00.1154003Z             {
2026-06-18T11:18:00.1154127Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-18T11:18:00.1154218Z               "line": 234
2026-06-18T11:18:00.1154308Z             },
2026-06-18T11:18:00.1154388Z             {
2026-06-18T11:18:00.1154509Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-18T11:18:00.1154703Z               "line": 256
2026-06-18T11:18:00.1154781Z             },
2026-06-18T11:18:00.1154871Z             {
2026-06-18T11:18:00.1154990Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-18T11:18:00.1155086Z               "line": 124
2026-06-18T11:18:00.1155172Z             },
2026-06-18T11:18:00.1155251Z             {
2026-06-18T11:18:00.1155381Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-18T11:18:00.1155477Z               "line": 140
2026-06-18T11:18:00.1155566Z             },
2026-06-18T11:18:00.1155652Z             {
2026-06-18T11:18:00.1155768Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-18T11:18:00.1155858Z               "line": 155
2026-06-18T11:18:00.1155952Z             }
2026-06-18T11:18:00.1156043Z           ]
2026-06-18T11:18:00.1156133Z         }
2026-06-18T11:18:00.1156222Z       }
2026-06-18T11:18:00.1156297Z     },
2026-06-18T11:18:00.1156384Z     {
2026-06-18T11:18:00.1156479Z       "id": "REQ-NOTIF-1",
2026-06-18T11:18:00.1156847Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-18T11:18:00.1156946Z       "requiredStages": [
2026-06-18T11:18:00.1157028Z         "impl",
2026-06-18T11:18:00.1157123Z         "unit",
2026-06-18T11:18:00.1157218Z         "int"
2026-06-18T11:18:00.1157304Z       ],
2026-06-18T11:18:00.1157386Z       "stages": {
2026-06-18T11:18:00.1157480Z         "doc": {
2026-06-18T11:18:00.1157571Z           "complete": false,
2026-06-18T11:18:00.1157667Z           "evidence": []
2026-06-18T11:18:00.1157762Z         },
2026-06-18T11:18:00.1157843Z         "impl": {
2026-06-18T11:18:00.1157943Z           "complete": true,
2026-06-18T11:18:00.1158025Z           "evidence": [
2026-06-18T11:18:00.1158118Z             {
2026-06-18T11:18:00.1158244Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T11:18:00.1158330Z               "line": 514
2026-06-18T11:18:00.1158420Z             },
2026-06-18T11:18:00.1158514Z             {
2026-06-18T11:18:00.1158638Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1158723Z               "line": 30
2026-06-18T11:18:00.1158817Z             },
2026-06-18T11:18:00.1158892Z             {
2026-06-18T11:18:00.1159084Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1159193Z               "line": 69
2026-06-18T11:18:00.1159280Z             },
2026-06-18T11:18:00.1159375Z             {
2026-06-18T11:18:00.1159489Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1159590Z               "line": 93
2026-06-18T11:18:00.1159670Z             },
2026-06-18T11:18:00.1159751Z             {
2026-06-18T11:18:00.1159871Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1159962Z               "line": 107
2026-06-18T11:18:00.1160052Z             },
2026-06-18T11:18:00.1160133Z             {
2026-06-18T11:18:00.1160258Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1160362Z               "line": 142
2026-06-18T11:18:00.1160443Z             },
2026-06-18T11:18:00.1160539Z             {
2026-06-18T11:18:00.1160652Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1160743Z               "line": 187
2026-06-18T11:18:00.1160825Z             },
2026-06-18T11:18:00.1161024Z             {
2026-06-18T11:18:00.1161145Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1161236Z               "line": 258
2026-06-18T11:18:00.1161319Z             },
2026-06-18T11:18:00.1161409Z             {
2026-06-18T11:18:00.1161525Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1161620Z               "line": 372
2026-06-18T11:18:00.1161700Z             },
2026-06-18T11:18:00.1161781Z             {
2026-06-18T11:18:00.1161892Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1161987Z               "line": 479
2026-06-18T11:18:00.1162067Z             },
2026-06-18T11:18:00.1162155Z             {
2026-06-18T11:18:00.1162382Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T11:18:00.1162469Z               "line": 24
2026-06-18T11:18:00.1162559Z             },
2026-06-18T11:18:00.1162645Z             {
2026-06-18T11:18:00.1162764Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T11:18:00.1162855Z               "line": 34
2026-06-18T11:18:00.1162945Z             },
2026-06-18T11:18:00.1163026Z             {
2026-06-18T11:18:00.1163151Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T11:18:00.1163245Z               "line": 60
2026-06-18T11:18:00.1163331Z             },
2026-06-18T11:18:00.1163418Z             {
2026-06-18T11:18:00.1163531Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T11:18:00.1163630Z               "line": 82
2026-06-18T11:18:00.1163711Z             },
2026-06-18T11:18:00.1163792Z             {
2026-06-18T11:18:00.1163915Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T11:18:00.1164005Z               "line": 94
2026-06-18T11:18:00.1164096Z             },
2026-06-18T11:18:00.1164187Z             {
2026-06-18T11:18:00.1164314Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T11:18:00.1164411Z               "line": 96
2026-06-18T11:18:00.1164492Z             },
2026-06-18T11:18:00.1164596Z             {
2026-06-18T11:18:00.1164721Z               "path": "crates/spt-daemon/src/pump/notif.rs",
2026-06-18T11:18:00.1164821Z               "line": 44
2026-06-18T11:18:00.1164911Z             },
2026-06-18T11:18:00.1164997Z             {
2026-06-18T11:18:00.1165126Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-18T11:18:00.1165216Z               "line": 20
2026-06-18T11:18:00.1165312Z             },
2026-06-18T11:18:00.1165388Z             {
2026-06-18T11:18:00.1165512Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-18T11:18:00.1165597Z               "line": 30
2026-06-18T11:18:00.1165689Z             },
2026-06-18T11:18:00.1165789Z             {
2026-06-18T11:18:00.1165898Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-18T11:18:00.1165995Z               "line": 50
2026-06-18T11:18:00.1166075Z             },
2026-06-18T11:18:00.1166160Z             {
2026-06-18T11:18:00.1166271Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T11:18:00.1166371Z               "line": 28
2026-06-18T11:18:00.1166460Z             },
2026-06-18T11:18:00.1166545Z             {
2026-06-18T11:18:00.1166664Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T11:18:00.1166754Z               "line": 126
2026-06-18T11:18:00.1166843Z             },
2026-06-18T11:18:00.1166934Z             {
2026-06-18T11:18:00.1167049Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T11:18:00.1167143Z               "line": 161
2026-06-18T11:18:00.1167229Z             },
2026-06-18T11:18:00.1167312Z             {
2026-06-18T11:18:00.1167416Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T11:18:00.1167525Z               "line": 202
2026-06-18T11:18:00.1167622Z             },
2026-06-18T11:18:00.1167702Z             {
2026-06-18T11:18:00.1167820Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T11:18:00.1167908Z               "line": 213
2026-06-18T11:18:00.1167993Z             },
2026-06-18T11:18:00.1168160Z             {
2026-06-18T11:18:00.1168266Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T11:18:00.1168364Z               "line": 238
2026-06-18T11:18:00.1168440Z             },
2026-06-18T11:18:00.1168523Z             {
2026-06-18T11:18:00.1168633Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T11:18:00.1168727Z               "line": 261
2026-06-18T11:18:00.1168809Z             },
2026-06-18T11:18:00.1168900Z             {
2026-06-18T11:18:00.1169079Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.1169174Z               "line": 82
2026-06-18T11:18:00.1169265Z             }
2026-06-18T11:18:00.1169344Z           ]
2026-06-18T11:18:00.1169559Z         },
2026-06-18T11:18:00.1169645Z         "int": {
2026-06-18T11:18:00.1169744Z           "complete": true,
2026-06-18T11:18:00.1169835Z           "evidence": [
2026-06-18T11:18:00.1169921Z             {
2026-06-18T11:18:00.1170054Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T11:18:00.1170155Z               "line": 285
2026-06-18T11:18:00.1170250Z             },
2026-06-18T11:18:00.1170339Z             {
2026-06-18T11:18:00.1170460Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-18T11:18:00.1170583Z               "line": 145
2026-06-18T11:18:00.1170698Z             },
2026-06-18T11:18:00.1170779Z             {
2026-06-18T11:18:00.1170907Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1171003Z               "line": 683
2026-06-18T11:18:00.1171085Z             },
2026-06-18T11:18:00.1171171Z             {
2026-06-18T11:18:00.1171303Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1171405Z               "line": 1101
2026-06-18T11:18:00.1171486Z             }
2026-06-18T11:18:00.1171570Z           ]
2026-06-18T11:18:00.1171671Z         },
2026-06-18T11:18:00.1171758Z         "unit": {
2026-06-18T11:18:00.1171856Z           "complete": true,
2026-06-18T11:18:00.1171951Z           "evidence": [
2026-06-18T11:18:00.1172046Z             {
2026-06-18T11:18:00.1172167Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1172251Z               "line": 572
2026-06-18T11:18:00.1172341Z             },
2026-06-18T11:18:00.1172424Z             {
2026-06-18T11:18:00.1172523Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1172623Z               "line": 636
2026-06-18T11:18:00.1172710Z             },
2026-06-18T11:18:00.1172795Z             {
2026-06-18T11:18:00.1172904Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1173000Z               "line": 740
2026-06-18T11:18:00.1173086Z             },
2026-06-18T11:18:00.1173172Z             {
2026-06-18T11:18:00.1173290Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1173382Z               "line": 772
2026-06-18T11:18:00.1173467Z             },
2026-06-18T11:18:00.1173548Z             {
2026-06-18T11:18:00.1173664Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1173791Z               "line": 840
2026-06-18T11:18:00.1173901Z             },
2026-06-18T11:18:00.1173998Z             {
2026-06-18T11:18:00.1174115Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1174214Z               "line": 898
2026-06-18T11:18:00.1174300Z             },
2026-06-18T11:18:00.1174395Z             {
2026-06-18T11:18:00.1174513Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1174608Z               "line": 1173
2026-06-18T11:18:00.1174690Z             },
2026-06-18T11:18:00.1174770Z             {
2026-06-18T11:18:00.1174899Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T11:18:00.1175009Z               "line": 157
2026-06-18T11:18:00.1175094Z             },
2026-06-18T11:18:00.1175189Z             {
2026-06-18T11:18:00.1175310Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T11:18:00.1175405Z               "line": 250
2026-06-18T11:18:00.1175485Z             },
2026-06-18T11:18:00.1175681Z             {
2026-06-18T11:18:00.1175805Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T11:18:00.1175906Z               "line": 273
2026-06-18T11:18:00.1175986Z             },
2026-06-18T11:18:00.1176067Z             {
2026-06-18T11:18:00.1176196Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T11:18:00.1176287Z               "line": 355
2026-06-18T11:18:00.1176377Z             },
2026-06-18T11:18:00.1176463Z             {
2026-06-18T11:18:00.1176592Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T11:18:00.1176692Z               "line": 392
2026-06-18T11:18:00.1176778Z             },
2026-06-18T11:18:00.1176941Z             {
2026-06-18T11:18:00.1177072Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-18T11:18:00.1177172Z               "line": 131
2026-06-18T11:18:00.1177258Z             },
2026-06-18T11:18:00.1177332Z             {
2026-06-18T11:18:00.1177451Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-18T11:18:00.1177552Z               "line": 72
2026-06-18T11:18:00.1177647Z             },
2026-06-18T11:18:00.1177732Z             {
2026-06-18T11:18:00.1177848Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-18T11:18:00.1177933Z               "line": 97
2026-06-18T11:18:00.1178023Z             },
2026-06-18T11:18:00.1178109Z             {
2026-06-18T11:18:00.1178229Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T11:18:00.1178324Z               "line": 379
2026-06-18T11:18:00.1178405Z             },
2026-06-18T11:18:00.1178487Z             {
2026-06-18T11:18:00.1178605Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T11:18:00.1178705Z               "line": 417
2026-06-18T11:18:00.1178792Z             },
2026-06-18T11:18:00.1178868Z             {
2026-06-18T11:18:00.1179063Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T11:18:00.1179155Z               "line": 433
2026-06-18T11:18:00.1179244Z             },
2026-06-18T11:18:00.1179335Z             {
2026-06-18T11:18:00.1179446Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T11:18:00.1179540Z               "line": 472
2026-06-18T11:18:00.1179620Z             },
2026-06-18T11:18:00.1179700Z             {
2026-06-18T11:18:00.1179806Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T11:18:00.1179904Z               "line": 489
2026-06-18T11:18:00.1179999Z             },
2026-06-18T11:18:00.1180080Z             {
2026-06-18T11:18:00.1180196Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T11:18:00.1180275Z               "line": 517
2026-06-18T11:18:00.1180371Z             },
2026-06-18T11:18:00.1180457Z             {
2026-06-18T11:18:00.1180571Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T11:18:00.1180671Z               "line": 548
2026-06-18T11:18:00.1180753Z             },
2026-06-18T11:18:00.1180844Z             {
2026-06-18T11:18:00.1180952Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.1181054Z               "line": 741
2026-06-18T11:18:00.1181138Z             }
2026-06-18T11:18:00.1181224Z           ]
2026-06-18T11:18:00.1181310Z         }
2026-06-18T11:18:00.1181388Z       }
2026-06-18T11:18:00.1181472Z     },
2026-06-18T11:18:00.1181553Z     {
2026-06-18T11:18:00.1181655Z       "id": "REQ-NOTIF-2",
2026-06-18T11:18:00.1181921Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-18T11:18:00.1182022Z       "requiredStages": [
2026-06-18T11:18:00.1182111Z         "doc",
2026-06-18T11:18:00.1182192Z         "impl",
2026-06-18T11:18:00.1182285Z         "unit",
2026-06-18T11:18:00.1182380Z         "int"
2026-06-18T11:18:00.1182463Z       ],
2026-06-18T11:18:00.1182544Z       "stages": {
2026-06-18T11:18:00.1182640Z         "doc": {
2026-06-18T11:18:00.1182741Z           "complete": true,
2026-06-18T11:18:00.1182835Z           "evidence": [
2026-06-18T11:18:00.1182926Z             {
2026-06-18T11:18:00.1183125Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.1183231Z               "line": 491
2026-06-18T11:18:00.1183313Z             },
2026-06-18T11:18:00.1183408Z             {
2026-06-18T11:18:00.1183517Z               "path": "docs/MANIFEST.md",
2026-06-18T11:18:00.1183604Z               "line": 98
2026-06-18T11:18:00.1183689Z             }
2026-06-18T11:18:00.1183774Z           ]
2026-06-18T11:18:00.1183865Z         },
2026-06-18T11:18:00.1183952Z         "impl": {
2026-06-18T11:18:00.1184056Z           "complete": true,
2026-06-18T11:18:00.1184156Z           "evidence": [
2026-06-18T11:18:00.1184238Z             {
2026-06-18T11:18:00.1184466Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1184553Z               "line": 287
2026-06-18T11:18:00.1184643Z             },
2026-06-18T11:18:00.1184727Z             {
2026-06-18T11:18:00.1184851Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1187618Z               "line": 301
2026-06-18T11:18:00.1187742Z             },
2026-06-18T11:18:00.1187827Z             {
2026-06-18T11:18:00.1187959Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1188050Z               "line": 326
2026-06-18T11:18:00.1188132Z             },
2026-06-18T11:18:00.1188217Z             {
2026-06-18T11:18:00.1188355Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.1188441Z               "line": 210
2026-06-18T11:18:00.1188527Z             },
2026-06-18T11:18:00.1188607Z             {
2026-06-18T11:18:00.1188737Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.1188818Z               "line": 91
2026-06-18T11:18:00.1188917Z             },
2026-06-18T11:18:00.1189109Z             {
2026-06-18T11:18:00.1189213Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1189309Z               "line": 2096
2026-06-18T11:18:00.1189381Z             },
2026-06-18T11:18:00.1189461Z             {
2026-06-18T11:18:00.1189566Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1189653Z               "line": 2145
2026-06-18T11:18:00.1189739Z             },
2026-06-18T11:18:00.1189818Z             {
2026-06-18T11:18:00.1189924Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1190001Z               "line": 2224
2026-06-18T11:18:00.1190091Z             },
2026-06-18T11:18:00.1190170Z             {
2026-06-18T11:18:00.1190265Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1190361Z               "line": 2263
2026-06-18T11:18:00.1190445Z             }
2026-06-18T11:18:00.1190530Z           ]
2026-06-18T11:18:00.1190617Z         },
2026-06-18T11:18:00.1190712Z         "int": {
2026-06-18T11:18:00.1190802Z           "complete": true,
2026-06-18T11:18:00.1190888Z           "evidence": [
2026-06-18T11:18:00.1190970Z             {
2026-06-18T11:18:00.1191099Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1191193Z               "line": 809
2026-06-18T11:18:00.1191280Z             },
2026-06-18T11:18:00.1191365Z             {
2026-06-18T11:18:00.1191483Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1191566Z               "line": 1344
2026-06-18T11:18:00.1191647Z             }
2026-06-18T11:18:00.1191737Z           ]
2026-06-18T11:18:00.1191818Z         },
2026-06-18T11:18:00.1191905Z         "unit": {
2026-06-18T11:18:00.1192000Z           "complete": true,
2026-06-18T11:18:00.1192095Z           "evidence": [
2026-06-18T11:18:00.1192176Z             {
2026-06-18T11:18:00.1192305Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1192385Z               "line": 1022
2026-06-18T11:18:00.1192486Z             },
2026-06-18T11:18:00.1192568Z             {
2026-06-18T11:18:00.1192685Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1192786Z               "line": 1090
2026-06-18T11:18:00.1192868Z             },
2026-06-18T11:18:00.1192954Z             {
2026-06-18T11:18:00.1193057Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1193292Z               "line": 7980
2026-06-18T11:18:00.1193371Z             },
2026-06-18T11:18:00.1193466Z             {
2026-06-18T11:18:00.1193577Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1193667Z               "line": 8035
2026-06-18T11:18:00.1193762Z             }
2026-06-18T11:18:00.1193835Z           ]
2026-06-18T11:18:00.1193925Z         }
2026-06-18T11:18:00.1194005Z       }
2026-06-18T11:18:00.1194091Z     },
2026-06-18T11:18:00.1194173Z     {
2026-06-18T11:18:00.1194258Z       "id": "REQ-PAIR-1",
2026-06-18T11:18:00.1194367Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-18T11:18:00.1194563Z       "requiredStages": [
2026-06-18T11:18:00.1194654Z         "impl",
2026-06-18T11:18:00.1194735Z         "unit",
2026-06-18T11:18:00.1194822Z         "int"
2026-06-18T11:18:00.1194916Z       ],
2026-06-18T11:18:00.1194997Z       "stages": {
2026-06-18T11:18:00.1195084Z         "doc": {
2026-06-18T11:18:00.1195193Z           "complete": false,
2026-06-18T11:18:00.1195297Z           "evidence": []
2026-06-18T11:18:00.1195377Z         },
2026-06-18T11:18:00.1195473Z         "impl": {
2026-06-18T11:18:00.1195566Z           "complete": true,
2026-06-18T11:18:00.1195657Z           "evidence": [
2026-06-18T11:18:00.1195738Z             {
2026-06-18T11:18:00.1195877Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T11:18:00.1195981Z               "line": 27
2026-06-18T11:18:00.1196062Z             },
2026-06-18T11:18:00.1196144Z             {
2026-06-18T11:18:00.1196267Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T11:18:00.1196372Z               "line": 88
2026-06-18T11:18:00.1196463Z             },
2026-06-18T11:18:00.1196553Z             {
2026-06-18T11:18:00.1196682Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T11:18:00.1196777Z               "line": 110
2026-06-18T11:18:00.1196863Z             },
2026-06-18T11:18:00.1196944Z             {
2026-06-18T11:18:00.1197074Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T11:18:00.1197169Z               "line": 153
2026-06-18T11:18:00.1197245Z             },
2026-06-18T11:18:00.1197326Z             {
2026-06-18T11:18:00.1197449Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T11:18:00.1197545Z               "line": 182
2026-06-18T11:18:00.1197627Z             },
2026-06-18T11:18:00.1197713Z             {
2026-06-18T11:18:00.1197840Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-18T11:18:00.1197922Z               "line": 29
2026-06-18T11:18:00.1198009Z             },
2026-06-18T11:18:00.1198093Z             {
2026-06-18T11:18:00.1198244Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-18T11:18:00.1198331Z               "line": 31
2026-06-18T11:18:00.1198415Z             },
2026-06-18T11:18:00.1198505Z             {
2026-06-18T11:18:00.1198619Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T11:18:00.1198720Z               "line": 44
2026-06-18T11:18:00.1198801Z             },
2026-06-18T11:18:00.1198881Z             {
2026-06-18T11:18:00.1199068Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T11:18:00.1199163Z               "line": 171
2026-06-18T11:18:00.1199254Z             },
2026-06-18T11:18:00.1199335Z             {
2026-06-18T11:18:00.1199463Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T11:18:00.1199545Z               "line": 376
2026-06-18T11:18:00.1199631Z             }
2026-06-18T11:18:00.1199716Z           ]
2026-06-18T11:18:00.1199807Z         },
2026-06-18T11:18:00.1199898Z         "int": {
2026-06-18T11:18:00.1199988Z           "complete": true,
2026-06-18T11:18:00.1200083Z           "evidence": [
2026-06-18T11:18:00.1200154Z             {
2026-06-18T11:18:00.1200284Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1200374Z               "line": 644
2026-06-18T11:18:00.1200585Z             },
2026-06-18T11:18:00.1200670Z             {
2026-06-18T11:18:00.1200797Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1200897Z               "line": 886
2026-06-18T11:18:00.1200977Z             }
2026-06-18T11:18:00.1201066Z           ]
2026-06-18T11:18:00.1201148Z         },
2026-06-18T11:18:00.1201239Z         "unit": {
2026-06-18T11:18:00.1201330Z           "complete": true,
2026-06-18T11:18:00.1201419Z           "evidence": [
2026-06-18T11:18:00.1201506Z             {
2026-06-18T11:18:00.1201630Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T11:18:00.1201720Z               "line": 236
2026-06-18T11:18:00.1201907Z             },
2026-06-18T11:18:00.1201983Z             {
2026-06-18T11:18:00.1202121Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T11:18:00.1202212Z               "line": 349
2026-06-18T11:18:00.1202307Z             },
2026-06-18T11:18:00.1202392Z             {
2026-06-18T11:18:00.1202527Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-18T11:18:00.1202622Z               "line": 194
2026-06-18T11:18:00.1202712Z             },
2026-06-18T11:18:00.1202799Z             {
2026-06-18T11:18:00.1202926Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-18T11:18:00.1203022Z               "line": 216
2026-06-18T11:18:00.1203100Z             },
2026-06-18T11:18:00.1203185Z             {
2026-06-18T11:18:00.1203304Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-18T11:18:00.1203400Z               "line": 230
2026-06-18T11:18:00.1203481Z             },
2026-06-18T11:18:00.1203565Z             {
2026-06-18T11:18:00.1203688Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-18T11:18:00.1203774Z               "line": 242
2026-06-18T11:18:00.1203861Z             },
2026-06-18T11:18:00.1203945Z             {
2026-06-18T11:18:00.1204061Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-18T11:18:00.1204160Z               "line": 256
2026-06-18T11:18:00.1204246Z             },
2026-06-18T11:18:00.1204327Z             {
2026-06-18T11:18:00.1204452Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-18T11:18:00.1204543Z               "line": 270
2026-06-18T11:18:00.1204627Z             },
2026-06-18T11:18:00.1204709Z             {
2026-06-18T11:18:00.1204837Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-18T11:18:00.1204927Z               "line": 277
2026-06-18T11:18:00.1205015Z             },
2026-06-18T11:18:00.1205096Z             {
2026-06-18T11:18:00.1205219Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-18T11:18:00.1205320Z               "line": 295
2026-06-18T11:18:00.1205401Z             },
2026-06-18T11:18:00.1205485Z             {
2026-06-18T11:18:00.1205610Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T11:18:00.1205697Z               "line": 968
2026-06-18T11:18:00.1205791Z             },
2026-06-18T11:18:00.1205871Z             {
2026-06-18T11:18:00.1206005Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T11:18:00.1206090Z               "line": 1051
2026-06-18T11:18:00.1206174Z             },
2026-06-18T11:18:00.1206264Z             {
2026-06-18T11:18:00.1206375Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T11:18:00.1206474Z               "line": 1121
2026-06-18T11:18:00.1206550Z             },
2026-06-18T11:18:00.1206641Z             {
2026-06-18T11:18:00.1206752Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T11:18:00.1206836Z               "line": 1182
2026-06-18T11:18:00.1206937Z             },
2026-06-18T11:18:00.1207018Z             {
2026-06-18T11:18:00.1207141Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T11:18:00.1207233Z               "line": 1238
2026-06-18T11:18:00.1207310Z             },
2026-06-18T11:18:00.1207390Z             {
2026-06-18T11:18:00.1207591Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T11:18:00.1207685Z               "line": 1457
2026-06-18T11:18:00.1207762Z             }
2026-06-18T11:18:00.1207857Z           ]
2026-06-18T11:18:00.1207944Z         }
2026-06-18T11:18:00.1208033Z       }
2026-06-18T11:18:00.1208114Z     },
2026-06-18T11:18:00.1208202Z     {
2026-06-18T11:18:00.1208297Z       "id": "REQ-PAIR-2",
2026-06-18T11:18:00.1208434Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-18T11:18:00.1208535Z       "requiredStages": [],
2026-06-18T11:18:00.1208621Z       "stages": {
2026-06-18T11:18:00.1208705Z         "doc": {
2026-06-18T11:18:00.1208872Z           "complete": false,
2026-06-18T11:18:00.1209036Z           "evidence": []
2026-06-18T11:18:00.1209131Z         },
2026-06-18T11:18:00.1209213Z         "impl": {
2026-06-18T11:18:00.1209309Z           "complete": false,
2026-06-18T11:18:00.1209403Z           "evidence": []
2026-06-18T11:18:00.1209489Z         },
2026-06-18T11:18:00.1209581Z         "int": {
2026-06-18T11:18:00.1209670Z           "complete": false,
2026-06-18T11:18:00.1209765Z           "evidence": []
2026-06-18T11:18:00.1209853Z         },
2026-06-18T11:18:00.1209943Z         "unit": {
2026-06-18T11:18:00.1210028Z           "complete": false,
2026-06-18T11:18:00.1210124Z           "evidence": []
2026-06-18T11:18:00.1210205Z         }
2026-06-18T11:18:00.1210286Z       }
2026-06-18T11:18:00.1210367Z     },
2026-06-18T11:18:00.1210448Z     {
2026-06-18T11:18:00.1210548Z       "id": "REQ-PAIR-3",
2026-06-18T11:18:00.1210681Z       "title": "Fetch current pairing code from any paired node",
2026-06-18T11:18:00.1210783Z       "requiredStages": [
2026-06-18T11:18:00.1210877Z         "impl",
2026-06-18T11:18:00.1210972Z         "unit"
2026-06-18T11:18:00.1211049Z       ],
2026-06-18T11:18:00.1211131Z       "stages": {
2026-06-18T11:18:00.1211220Z         "doc": {
2026-06-18T11:18:00.1211310Z           "complete": false,
2026-06-18T11:18:00.1211400Z           "evidence": []
2026-06-18T11:18:00.1211481Z         },
2026-06-18T11:18:00.1211561Z         "impl": {
2026-06-18T11:18:00.1211664Z           "complete": true,
2026-06-18T11:18:00.1211751Z           "evidence": [
2026-06-18T11:18:00.1211838Z             {
2026-06-18T11:18:00.1211946Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1212041Z               "line": 3117
2026-06-18T11:18:00.1212119Z             },
2026-06-18T11:18:00.1212200Z             {
2026-06-18T11:18:00.1212298Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1212391Z               "line": 3186
2026-06-18T11:18:00.1212471Z             },
2026-06-18T11:18:00.1212557Z             {
2026-06-18T11:18:00.1212667Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1212758Z               "line": 3567
2026-06-18T11:18:00.1212843Z             },
2026-06-18T11:18:00.1212919Z             {
2026-06-18T11:18:00.1213020Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1213110Z               "line": 4812
2026-06-18T11:18:00.1213201Z             }
2026-06-18T11:18:00.1213286Z           ]
2026-06-18T11:18:00.1213368Z         },
2026-06-18T11:18:00.1213458Z         "int": {
2026-06-18T11:18:00.1213549Z           "complete": false,
2026-06-18T11:18:00.1213630Z           "evidence": []
2026-06-18T11:18:00.1213712Z         },
2026-06-18T11:18:00.1213801Z         "unit": {
2026-06-18T11:18:00.1213901Z           "complete": true,
2026-06-18T11:18:00.1213984Z           "evidence": [
2026-06-18T11:18:00.1214074Z             {
2026-06-18T11:18:00.1214172Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1214262Z               "line": 9734
2026-06-18T11:18:00.1214349Z             },
2026-06-18T11:18:00.1214435Z             {
2026-06-18T11:18:00.1214534Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1214626Z               "line": 9949
2026-06-18T11:18:00.1214712Z             },
2026-06-18T11:18:00.1214783Z             {
2026-06-18T11:18:00.1214892Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1215079Z               "line": 10591
2026-06-18T11:18:00.1215163Z             },
2026-06-18T11:18:00.1215255Z             {
2026-06-18T11:18:00.1215355Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1215450Z               "line": 10610
2026-06-18T11:18:00.1215526Z             },
2026-06-18T11:18:00.1215608Z             {
2026-06-18T11:18:00.1215712Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1215793Z               "line": 10634
2026-06-18T11:18:00.1215880Z             },
2026-06-18T11:18:00.1215961Z             {
2026-06-18T11:18:00.1216069Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1216257Z               "line": 10653
2026-06-18T11:18:00.1216346Z             },
2026-06-18T11:18:00.1216431Z             {
2026-06-18T11:18:00.1216541Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1216641Z               "line": 10666
2026-06-18T11:18:00.1216724Z             },
2026-06-18T11:18:00.1216814Z             {
2026-06-18T11:18:00.1216921Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1217011Z               "line": 10675
2026-06-18T11:18:00.1217096Z             }
2026-06-18T11:18:00.1217183Z           ]
2026-06-18T11:18:00.1217269Z         }
2026-06-18T11:18:00.1217349Z       }
2026-06-18T11:18:00.1217440Z     },
2026-06-18T11:18:00.1217517Z     {
2026-06-18T11:18:00.1217612Z       "id": "REQ-PAIR-4",
2026-06-18T11:18:00.1217725Z       "title": "Subnet naming on first pairing",
2026-06-18T11:18:00.1217817Z       "requiredStages": [
2026-06-18T11:18:00.1217908Z         "impl",
2026-06-18T11:18:00.1217989Z         "unit"
2026-06-18T11:18:00.1218088Z       ],
2026-06-18T11:18:00.1218165Z       "stages": {
2026-06-18T11:18:00.1218255Z         "doc": {
2026-06-18T11:18:00.1218350Z           "complete": false,
2026-06-18T11:18:00.1218437Z           "evidence": []
2026-06-18T11:18:00.1218519Z         },
2026-06-18T11:18:00.1218603Z         "impl": {
2026-06-18T11:18:00.1218703Z           "complete": true,
2026-06-18T11:18:00.1218800Z           "evidence": [
2026-06-18T11:18:00.1218880Z             {
2026-06-18T11:18:00.1219091Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T11:18:00.1219181Z               "line": 174
2026-06-18T11:18:00.1219265Z             }
2026-06-18T11:18:00.1219350Z           ]
2026-06-18T11:18:00.1219437Z         },
2026-06-18T11:18:00.1219526Z         "int": {
2026-06-18T11:18:00.1219611Z           "complete": false,
2026-06-18T11:18:00.1219711Z           "evidence": []
2026-06-18T11:18:00.1219793Z         },
2026-06-18T11:18:00.1219878Z         "unit": {
2026-06-18T11:18:00.1219973Z           "complete": true,
2026-06-18T11:18:00.1220079Z           "evidence": [
2026-06-18T11:18:00.1220169Z             {
2026-06-18T11:18:00.1220292Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T11:18:00.1220389Z               "line": 1294
2026-06-18T11:18:00.1220464Z             }
2026-06-18T11:18:00.1220545Z           ]
2026-06-18T11:18:00.1220631Z         }
2026-06-18T11:18:00.1220713Z       }
2026-06-18T11:18:00.1220793Z     },
2026-06-18T11:18:00.1220865Z     {
2026-06-18T11:18:00.1220969Z       "id": "REQ-PAIR-5",
2026-06-18T11:18:00.1221266Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-18T11:18:00.1221362Z       "requiredStages": [
2026-06-18T11:18:00.1221442Z         "impl",
2026-06-18T11:18:00.1221537Z         "unit",
2026-06-18T11:18:00.1221624Z         "int"
2026-06-18T11:18:00.1221706Z       ],
2026-06-18T11:18:00.1221794Z       "stages": {
2026-06-18T11:18:00.1221884Z         "doc": {
2026-06-18T11:18:00.1221994Z           "complete": false,
2026-06-18T11:18:00.1222083Z           "evidence": []
2026-06-18T11:18:00.1222168Z         },
2026-06-18T11:18:00.1222263Z         "impl": {
2026-06-18T11:18:00.1222345Z           "complete": true,
2026-06-18T11:18:00.1222440Z           "evidence": [
2026-06-18T11:18:00.1222521Z             {
2026-06-18T11:18:00.1222765Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T11:18:00.1222845Z               "line": 44
2026-06-18T11:18:00.1222946Z             },
2026-06-18T11:18:00.1223027Z             {
2026-06-18T11:18:00.1223155Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T11:18:00.1223246Z               "line": 96
2026-06-18T11:18:00.1223327Z             },
2026-06-18T11:18:00.1223408Z             {
2026-06-18T11:18:00.1223532Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T11:18:00.1223628Z               "line": 107
2026-06-18T11:18:00.1223718Z             },
2026-06-18T11:18:00.1223804Z             {
2026-06-18T11:18:00.1224023Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T11:18:00.1224104Z               "line": 124
2026-06-18T11:18:00.1224190Z             },
2026-06-18T11:18:00.1224277Z             {
2026-06-18T11:18:00.1224404Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T11:18:00.1224505Z               "line": 155
2026-06-18T11:18:00.1224582Z             },
2026-06-18T11:18:00.1224666Z             {
2026-06-18T11:18:00.1224794Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T11:18:00.1224881Z               "line": 195
2026-06-18T11:18:00.1224957Z             },
2026-06-18T11:18:00.1225038Z             {
2026-06-18T11:18:00.1225166Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T11:18:00.1225258Z               "line": 251
2026-06-18T11:18:00.1225334Z             },
2026-06-18T11:18:00.1225413Z             {
2026-06-18T11:18:00.1225558Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-18T11:18:00.1225667Z               "line": 33
2026-06-18T11:18:00.1225752Z             },
2026-06-18T11:18:00.1225839Z             {
2026-06-18T11:18:00.1225972Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-18T11:18:00.1226057Z               "line": 45
2026-06-18T11:18:00.1226140Z             },
2026-06-18T11:18:00.1226230Z             {
2026-06-18T11:18:00.1226372Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-18T11:18:00.1226465Z               "line": 59
2026-06-18T11:18:00.1226555Z             },
2026-06-18T11:18:00.1226634Z             {
2026-06-18T11:18:00.1226759Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T11:18:00.1226846Z               "line": 376
2026-06-18T11:18:00.1226930Z             }
2026-06-18T11:18:00.1227015Z           ]
2026-06-18T11:18:00.1227096Z         },
2026-06-18T11:18:00.1227182Z         "int": {
2026-06-18T11:18:00.1227266Z           "complete": true,
2026-06-18T11:18:00.1227375Z           "evidence": [
2026-06-18T11:18:00.1227461Z             {
2026-06-18T11:18:00.1227581Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1227680Z               "line": 886
2026-06-18T11:18:00.1227757Z             },
2026-06-18T11:18:00.1227847Z             {
2026-06-18T11:18:00.1227971Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T11:18:00.1228058Z               "line": 342
2026-06-18T11:18:00.1228139Z             }
2026-06-18T11:18:00.1228229Z           ]
2026-06-18T11:18:00.1228314Z         },
2026-06-18T11:18:00.1228396Z         "unit": {
2026-06-18T11:18:00.1228491Z           "complete": true,
2026-06-18T11:18:00.1228577Z           "evidence": [
2026-06-18T11:18:00.1228662Z             {
2026-06-18T11:18:00.1228783Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T11:18:00.1228878Z               "line": 293
2026-06-18T11:18:00.1229055Z             },
2026-06-18T11:18:00.1229140Z             {
2026-06-18T11:18:00.1229278Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T11:18:00.1229360Z               "line": 304
2026-06-18T11:18:00.1229445Z             },
2026-06-18T11:18:00.1229526Z             {
2026-06-18T11:18:00.1229646Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T11:18:00.1229863Z               "line": 406
2026-06-18T11:18:00.1229949Z             },
2026-06-18T11:18:00.1230035Z             {
2026-06-18T11:18:00.1230161Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-18T11:18:00.1230247Z               "line": 72
2026-06-18T11:18:00.1230333Z             },
2026-06-18T11:18:00.1230415Z             {
2026-06-18T11:18:00.1230552Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-18T11:18:00.1230634Z               "line": 82
2026-06-18T11:18:00.1230729Z             },
2026-06-18T11:18:00.1230809Z             {
2026-06-18T11:18:00.1230944Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-18T11:18:00.1231133Z               "line": 100
2026-06-18T11:18:00.1231225Z             },
2026-06-18T11:18:00.1231307Z             {
2026-06-18T11:18:00.1231439Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-18T11:18:00.1231539Z               "line": 110
2026-06-18T11:18:00.1231617Z             },
2026-06-18T11:18:00.1231701Z             {
2026-06-18T11:18:00.1231840Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-18T11:18:00.1231922Z               "line": 125
2026-06-18T11:18:00.1232011Z             },
2026-06-18T11:18:00.1232092Z             {
2026-06-18T11:18:00.1232222Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T11:18:00.1232303Z               "line": 1044
2026-06-18T11:18:00.1232388Z             },
2026-06-18T11:18:00.1232467Z             {
2026-06-18T11:18:00.1232592Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T11:18:00.1232681Z               "line": 1110
2026-06-18T11:18:00.1232766Z             },
2026-06-18T11:18:00.1232852Z             {
2026-06-18T11:18:00.1232977Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T11:18:00.1233076Z               "line": 1357
2026-06-18T11:18:00.1233157Z             }
2026-06-18T11:18:00.1233234Z           ]
2026-06-18T11:18:00.1233334Z         }
2026-06-18T11:18:00.1233415Z       }
2026-06-18T11:18:00.1233496Z     },
2026-06-18T11:18:00.1233577Z     {
2026-06-18T11:18:00.1233672Z       "id": "REQ-PAIR-6",
2026-06-18T11:18:00.1233930Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-18T11:18:00.1234020Z       "requiredStages": [
2026-06-18T11:18:00.1234106Z         "impl",
2026-06-18T11:18:00.1234188Z         "unit"
2026-06-18T11:18:00.1234278Z       ],
2026-06-18T11:18:00.1234364Z       "stages": {
2026-06-18T11:18:00.1234450Z         "doc": {
2026-06-18T11:18:00.1234545Z           "complete": false,
2026-06-18T11:18:00.1234645Z           "evidence": []
2026-06-18T11:18:00.1234726Z         },
2026-06-18T11:18:00.1234809Z         "impl": {
2026-06-18T11:18:00.1234907Z           "complete": true,
2026-06-18T11:18:00.1234988Z           "evidence": [
2026-06-18T11:18:00.1235070Z             {
2026-06-18T11:18:00.1235189Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1235274Z               "line": 3186
2026-06-18T11:18:00.1235368Z             },
2026-06-18T11:18:00.1235450Z             {
2026-06-18T11:18:00.1235560Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1235645Z               "line": 3567
2026-06-18T11:18:00.1235726Z             },
2026-06-18T11:18:00.1235818Z             {
2026-06-18T11:18:00.1235931Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.1236022Z               "line": 18
2026-06-18T11:18:00.1236104Z             },
2026-06-18T11:18:00.1236189Z             {
2026-06-18T11:18:00.1236289Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.1236395Z               "line": 49
2026-06-18T11:18:00.1236480Z             },
2026-06-18T11:18:00.1236561Z             {
2026-06-18T11:18:00.1236675Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.1236766Z               "line": 318
2026-06-18T11:18:00.1236856Z             }
2026-06-18T11:18:00.1237025Z           ]
2026-06-18T11:18:00.1237110Z         },
2026-06-18T11:18:00.1237194Z         "int": {
2026-06-18T11:18:00.1237295Z           "complete": false,
2026-06-18T11:18:00.1237377Z           "evidence": []
2026-06-18T11:18:00.1237452Z         },
2026-06-18T11:18:00.1237551Z         "unit": {
2026-06-18T11:18:00.1237637Z           "complete": true,
2026-06-18T11:18:00.1237728Z           "evidence": [
2026-06-18T11:18:00.1237812Z             {
2026-06-18T11:18:00.1237921Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1238021Z               "line": 10688
2026-06-18T11:18:00.1238104Z             },
2026-06-18T11:18:00.1238192Z             {
2026-06-18T11:18:00.1238375Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1238479Z               "line": 10705
2026-06-18T11:18:00.1238555Z             },
2026-06-18T11:18:00.1238637Z             {
2026-06-18T11:18:00.1238741Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.1238831Z               "line": 383
2026-06-18T11:18:00.1238933Z             },
2026-06-18T11:18:00.1239099Z             {
2026-06-18T11:18:00.1239204Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T11:18:00.1239300Z               "line": 392
2026-06-18T11:18:00.1239385Z             }
2026-06-18T11:18:00.1239466Z           ]
2026-06-18T11:18:00.1239547Z         }
2026-06-18T11:18:00.1239639Z       }
2026-06-18T11:18:00.1239718Z     },
2026-06-18T11:18:00.1239804Z     {
2026-06-18T11:18:00.1239901Z       "id": "REQ-PAIR-7",
2026-06-18T11:18:00.1240061Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-18T11:18:00.1240168Z       "requiredStages": [],
2026-06-18T11:18:00.1240254Z       "stages": {
2026-06-18T11:18:00.1240348Z         "doc": {
2026-06-18T11:18:00.1240447Z           "complete": false,
2026-06-18T11:18:00.1240533Z           "evidence": []
2026-06-18T11:18:00.1240623Z         },
2026-06-18T11:18:00.1240703Z         "impl": {
2026-06-18T11:18:00.1240788Z           "complete": false,
2026-06-18T11:18:00.1240888Z           "evidence": []
2026-06-18T11:18:00.1240965Z         },
2026-06-18T11:18:00.1241055Z         "int": {
2026-06-18T11:18:00.1241150Z           "complete": false,
2026-06-18T11:18:00.1241252Z           "evidence": []
2026-06-18T11:18:00.1241337Z         },
2026-06-18T11:18:00.1241417Z         "unit": {
2026-06-18T11:18:00.1241514Z           "complete": false,
2026-06-18T11:18:00.1241608Z           "evidence": []
2026-06-18T11:18:00.1241689Z         }
2026-06-18T11:18:00.1241775Z       }
2026-06-18T11:18:00.1241862Z     },
2026-06-18T11:18:00.1241947Z     {
2026-06-18T11:18:00.1242047Z       "id": "REQ-PAIR-8",
2026-06-18T11:18:00.1243422Z       "title": "NTP TOTP offset: the pairing ceremony queries NTP at ceremony time (both sides) and applies the derived offset to the TOTP calculation in-process only; system-clock fallback when NTP is unreachable (offline LAN pairing unaffected — NTP failure never blocks a pairing that succeeds today); never sets the OS clock; no background sync loop (M8 decision 18; field trigger: enlyzeam clock >1 min off exceeds the ±1 window)",
2026-06-18T11:18:00.1243533Z       "requiredStages": [
2026-06-18T11:18:00.1243626Z         "impl",
2026-06-18T11:18:00.1243713Z         "unit"
2026-06-18T11:18:00.1243799Z       ],
2026-06-18T11:18:00.1243880Z       "stages": {
2026-06-18T11:18:00.1243965Z         "doc": {
2026-06-18T11:18:00.1244071Z           "complete": false,
2026-06-18T11:18:00.1244166Z           "evidence": []
2026-06-18T11:18:00.1244251Z         },
2026-06-18T11:18:00.1244332Z         "impl": {
2026-06-18T11:18:00.1244434Z           "complete": true,
2026-06-18T11:18:00.1244518Z           "evidence": [
2026-06-18T11:18:00.1244614Z             {
2026-06-18T11:18:00.1244739Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T11:18:00.1244828Z               "line": 577
2026-06-18T11:18:00.1244924Z             },
2026-06-18T11:18:00.1245006Z             {
2026-06-18T11:18:00.1245138Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-18T11:18:00.1245349Z               "line": 22
2026-06-18T11:18:00.1245429Z             },
2026-06-18T11:18:00.1245510Z             {
2026-06-18T11:18:00.1245636Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-18T11:18:00.1245726Z               "line": 76
2026-06-18T11:18:00.1245814Z             },
2026-06-18T11:18:00.1245909Z             {
2026-06-18T11:18:00.1246034Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-18T11:18:00.1246129Z               "line": 127
2026-06-18T11:18:00.1246219Z             }
2026-06-18T11:18:00.1246301Z           ]
2026-06-18T11:18:00.1246392Z         },
2026-06-18T11:18:00.1246567Z         "int": {
2026-06-18T11:18:00.1246668Z           "complete": false,
2026-06-18T11:18:00.1246764Z           "evidence": []
2026-06-18T11:18:00.1246844Z         },
2026-06-18T11:18:00.1246925Z         "unit": {
2026-06-18T11:18:00.1247016Z           "complete": true,
2026-06-18T11:18:00.1247097Z           "evidence": [
2026-06-18T11:18:00.1247192Z             {
2026-06-18T11:18:00.1247317Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-18T11:18:00.1247402Z               "line": 183
2026-06-18T11:18:00.1247488Z             },
2026-06-18T11:18:00.1247575Z             {
2026-06-18T11:18:00.1247698Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-18T11:18:00.1247793Z               "line": 195
2026-06-18T11:18:00.1247875Z             },
2026-06-18T11:18:00.1247966Z             {
2026-06-18T11:18:00.1248088Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-18T11:18:00.1248173Z               "line": 211
2026-06-18T11:18:00.1248278Z             },
2026-06-18T11:18:00.1248358Z             {
2026-06-18T11:18:00.1248481Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-18T11:18:00.1248577Z               "line": 227
2026-06-18T11:18:00.1248654Z             }
2026-06-18T11:18:00.1248743Z           ]
2026-06-18T11:18:00.1248824Z         }
2026-06-18T11:18:00.1248916Z       }
2026-06-18T11:18:00.1249072Z     },
2026-06-18T11:18:00.1249163Z     {
2026-06-18T11:18:00.1249250Z       "id": "REQ-PICKER-1",
2026-06-18T11:18:00.1252756Z       "title": "The picker renders a FOUR-state endpoint status (extending the W2 online/offline duality): the list-item square AND a color-coded STATUS line at the top of the pick-existing right-side details both show — gray OFFLINE; green ONLINE (online + PTY-controllable spt-hosted, not controlled); amber 'ONLINE - HARNESS ONLY' (online but NOT broker-PTY-controllable = harness-hosted, no broker PTY seat — today mis-shows green); blue 'ONLINE + CONTROLLED' (online + driven_by.is_some()). Derived on EndpointRow from {offline | controllable | driven_by} with precedence offline→gray, else driven_by→blue, else !controllable→amber, else green (driven_by outranks harness-only; mutually exclusive in practice — a harness-only endpoint has no broker PTY to control). The controllable discriminator is a NEW InfoJson.controllable: Option<bool> (serde-default, N-1-safe), stamped at the establish seam — cmd_listen (harness-hosted relay, no broker PTY) → Some(false); cmd_bind live_agent (spt-hosted broker PTY) → Some(true); absent → not-controllable (amber) default (harness-hosted is the common mis-reported case; one bind self-corrects). Store-projection-only (no live daemon query — doyle ruling). (v0.10.0)",
2026-06-18T11:18:00.1252893Z       "requiredStages": [
2026-06-18T11:18:00.1252984Z         "impl",
2026-06-18T11:18:00.1253071Z         "unit"
2026-06-18T11:18:00.1253155Z       ],
2026-06-18T11:18:00.1253241Z       "stages": {
2026-06-18T11:18:00.1253338Z         "doc": {
2026-06-18T11:18:00.1253433Z           "complete": false,
2026-06-18T11:18:00.1253541Z           "evidence": []
2026-06-18T11:18:00.1253626Z         },
2026-06-18T11:18:00.1253712Z         "impl": {
2026-06-18T11:18:00.1253806Z           "complete": true,
2026-06-18T11:18:00.1253891Z           "evidence": [
2026-06-18T11:18:00.1253987Z             {
2026-06-18T11:18:00.1254220Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1254311Z               "line": 239
2026-06-18T11:18:00.1254402Z             },
2026-06-18T11:18:00.1254482Z             {
2026-06-18T11:18:00.1254597Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T11:18:00.1254684Z               "line": 237
2026-06-18T11:18:00.1254774Z             }
2026-06-18T11:18:00.1254859Z           ]
2026-06-18T11:18:00.1254951Z         },
2026-06-18T11:18:00.1255026Z         "int": {
2026-06-18T11:18:00.1255126Z           "complete": false,
2026-06-18T11:18:00.1255207Z           "evidence": []
2026-06-18T11:18:00.1255294Z         },
2026-06-18T11:18:00.1255498Z         "unit": {
2026-06-18T11:18:00.1255590Z           "complete": true,
2026-06-18T11:18:00.1258277Z           "evidence": [
2026-06-18T11:18:00.1258387Z             {
2026-06-18T11:18:00.1258512Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:18:00.1258615Z               "line": 450
2026-06-18T11:18:00.1258705Z             },
2026-06-18T11:18:00.1258796Z             {
2026-06-18T11:18:00.1258913Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1259103Z               "line": 722
2026-06-18T11:18:00.1259190Z             },
2026-06-18T11:18:00.1259275Z             {
2026-06-18T11:18:00.1259399Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T11:18:00.1259490Z               "line": 813
2026-06-18T11:18:00.1259575Z             },
2026-06-18T11:18:00.1259656Z             {
2026-06-18T11:18:00.1259781Z               "path": "crates/spt/src/picker/view.rs",
2026-06-18T11:18:00.1259876Z               "line": 447
2026-06-18T11:18:00.1259957Z             }
2026-06-18T11:18:00.1260043Z           ]
2026-06-18T11:18:00.1260124Z         }
2026-06-18T11:18:00.1260205Z       }
2026-06-18T11:18:00.1260286Z     },
2026-06-18T11:18:00.1260367Z     {
2026-06-18T11:18:00.1260467Z       "id": "REQ-PICKER-2",
2026-06-18T11:18:00.1262372Z       "title": "The picker's project-history loader reads the git-backed context store, not the bare working tree: data.rs project_history_for enumerates an endpoint's projects via the BranchStore branch set (the context store keeps per-project context in git branches — contextstore::project_branch(project_id), checked out to projects/<project>/<id>/ only on-demand) instead of raw std::fs::read_dir over the empty working tree (which returned empty for ALL rows incl wall-a — the operator bug). Ordered newest→oldest by branch commit recency; degrades to empty (informational pane), never fails. (v0.10.0)",
2026-06-18T11:18:00.1262490Z       "requiredStages": [
2026-06-18T11:18:00.1262571Z         "impl",
2026-06-18T11:18:00.1262667Z         "unit"
2026-06-18T11:18:00.1262758Z       ],
2026-06-18T11:18:00.1262833Z       "stages": {
2026-06-18T11:18:00.1262914Z         "doc": {
2026-06-18T11:18:00.1263016Z           "complete": false,
2026-06-18T11:18:00.1263096Z           "evidence": []
2026-06-18T11:18:00.1263176Z         },
2026-06-18T11:18:00.1263259Z         "impl": {
2026-06-18T11:18:00.1263368Z           "complete": true,
2026-06-18T11:18:00.1263449Z           "evidence": [
2026-06-18T11:18:00.1263535Z             {
2026-06-18T11:18:00.1263678Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.1263768Z               "line": 183
2026-06-18T11:18:00.1263859Z             },
2026-06-18T11:18:00.1263941Z             {
2026-06-18T11:18:00.1264058Z               "path": "crates/spt/src/picker/data.rs",
2026-06-18T11:18:00.1264153Z               "line": 223
2026-06-18T11:18:00.1264234Z             }
2026-06-18T11:18:00.1264320Z           ]
2026-06-18T11:18:00.1264399Z         },
2026-06-18T11:18:00.1264489Z         "int": {
2026-06-18T11:18:00.1264575Z           "complete": false,
2026-06-18T11:18:00.1264672Z           "evidence": []
2026-06-18T11:18:00.1264775Z         },
2026-06-18T11:18:00.1264886Z         "unit": {
2026-06-18T11:18:00.1264991Z           "complete": true,
2026-06-18T11:18:00.1265075Z           "evidence": [
2026-06-18T11:18:00.1265310Z             {
2026-06-18T11:18:00.1265438Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.1265535Z               "line": 655
2026-06-18T11:18:00.1265619Z             }
2026-06-18T11:18:00.1265700Z           ]
2026-06-18T11:18:00.1265786Z         }
2026-06-18T11:18:00.1265869Z       }
2026-06-18T11:18:00.1265958Z     },
2026-06-18T11:18:00.1266044Z     {
2026-06-18T11:18:00.1266140Z       "id": "REQ-PICKER-3",
2026-06-18T11:18:00.1268551Z       "title": "A self-owned subnet row reconciles its status to the LIVE roster: a Subnet-category row whose endpoint_id overlaps a local (is_local) roster id is self-owned (this node hosts it), so its status square is OVERRIDDEN with the live roster status — the WAN registry snapshot (wansend::load_snapshots) is a periodically-advertised, independently-stale projection, while the local roster (p.alive) is ground truth for an endpoint this node hosts. One status square per endpoint (CONTEXT.md:348-350 — nothing licenses opposite squares for one endpoint across its Local vs Subnet listings). A reconcile pass in data.rs after the local_rows + subnet_rows gather; BOTH category listings are preserved (Local + Subnet are legitimately distinct views — you are in your own subnet), only the STATUS is unified. (v0.10.0)",
2026-06-18T11:18:00.1268767Z       "requiredStages": [
2026-06-18T11:18:00.1268846Z         "impl",
2026-06-18T11:18:00.1268932Z         "unit"
2026-06-18T11:18:00.1269095Z       ],
2026-06-18T11:18:00.1269194Z       "stages": {
2026-06-18T11:18:00.1269275Z         "doc": {
2026-06-18T11:18:00.1269380Z           "complete": false,
2026-06-18T11:18:00.1269464Z           "evidence": []
2026-06-18T11:18:00.1269559Z         },
2026-06-18T11:18:00.1269649Z         "impl": {
2026-06-18T11:18:00.1269736Z           "complete": true,
2026-06-18T11:18:00.1269826Z           "evidence": [
2026-06-18T11:18:00.1269915Z             {
2026-06-18T11:18:00.1270041Z               "path": "crates/spt/src/picker/data.rs",
2026-06-18T11:18:00.1270140Z               "line": 87
2026-06-18T11:18:00.1270221Z             }
2026-06-18T11:18:00.1270318Z           ]
2026-06-18T11:18:00.1270398Z         },
2026-06-18T11:18:00.1270483Z         "int": {
2026-06-18T11:18:00.1270584Z           "complete": false,
2026-06-18T11:18:00.1270713Z           "evidence": []
2026-06-18T11:18:00.1270813Z         },
2026-06-18T11:18:00.1270898Z         "unit": {
2026-06-18T11:18:00.1270980Z           "complete": true,
2026-06-18T11:18:00.1271061Z           "evidence": [
2026-06-18T11:18:00.1271142Z             {
2026-06-18T11:18:00.1271262Z               "path": "crates/spt/src/picker/data.rs",
2026-06-18T11:18:00.1271356Z               "line": 293
2026-06-18T11:18:00.1271447Z             }
2026-06-18T11:18:00.1271528Z           ]
2026-06-18T11:18:00.1271610Z         }
2026-06-18T11:18:00.1271695Z       }
2026-06-18T11:18:00.1271786Z     },
2026-06-18T11:18:00.1271858Z     {
2026-06-18T11:18:00.1271953Z       "id": "REQ-PICKER-4",
2026-06-18T11:18:00.1273895Z       "title": "The picker's Subnet category renders the canonical node LABEL, not bare key-hex: a subnet row's node renders as 'LABEL (keyprefix…)' (e.g. 'HFENDULEAM (bcead52b…)') per CONTEXT.md:650 + Instance.node_label, NOT the raw node key-hex (SPT_DEV:14efb80cb… — a picker-only regression because resource_projection→ResourceRow drops node_label, so data.rs subnet_rows uses the raw row.node). Thread node_label into the picker subnet path (ResourceRow gains node_label, or subnet_rows looks it up via the registry's node_labels) and REUSE the one canonical render (format!(\"{l} ({}…)\", key_prefix) — cli.rs / wansend.rs), never a re-implementation. (v0.10.0)",
2026-06-18T11:18:00.1274033Z       "requiredStages": [
2026-06-18T11:18:00.1274129Z         "impl",
2026-06-18T11:18:00.1274220Z         "unit"
2026-06-18T11:18:00.1274299Z       ],
2026-06-18T11:18:00.1274390Z       "stages": {
2026-06-18T11:18:00.1274468Z         "doc": {
2026-06-18T11:18:00.1274567Z           "complete": false,
2026-06-18T11:18:00.1274775Z           "evidence": []
2026-06-18T11:18:00.1274861Z         },
2026-06-18T11:18:00.1274955Z         "impl": {
2026-06-18T11:18:00.1275035Z           "complete": true,
2026-06-18T11:18:00.1275131Z           "evidence": [
2026-06-18T11:18:00.1275208Z             {
2026-06-18T11:18:00.1275330Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.1275417Z               "line": 353
2026-06-18T11:18:00.1275503Z             }
2026-06-18T11:18:00.1275584Z           ]
2026-06-18T11:18:00.1275664Z         },
2026-06-18T11:18:00.1275756Z         "int": {
2026-06-18T11:18:00.1275851Z           "complete": false,
2026-06-18T11:18:00.1275946Z           "evidence": []
2026-06-18T11:18:00.1276128Z         },
2026-06-18T11:18:00.1276213Z         "unit": {
2026-06-18T11:18:00.1276303Z           "complete": true,
2026-06-18T11:18:00.1276395Z           "evidence": [
2026-06-18T11:18:00.1276481Z             {
2026-06-18T11:18:00.1276604Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.1276705Z               "line": 1246
2026-06-18T11:18:00.1276786Z             }
2026-06-18T11:18:00.1276876Z           ]
2026-06-18T11:18:00.1276967Z         }
2026-06-18T11:18:00.1277049Z       }
2026-06-18T11:18:00.1277138Z     },
2026-06-18T11:18:00.1277219Z     {
2026-06-18T11:18:00.1277321Z       "id": "REQ-PICKER-5",
2026-06-18T11:18:00.1280353Z       "title": "`spt endpoint list` (bare/subnet view) renders an ALIGNED table with canonical node labels: cmd_endpoint_list prints subnet rows with `\\t` TAB separators (cli.rs:~1651-1662) so variable-width endpoint_ids snap fields to different tab-stops → a RAGGED status column (operator screenshot: X/help statuses misaligned vs rt-*/sptc-*/wall-a); and it calls the node renderer with no label → bare key-hex for every row (SAME ResourceRow-drops-node_label root as REQ-PICKER-4). FIX: max-width per-column padding (mirror render_node_rows' pad, pad by char count not byte len — '…' is multibyte) replacing the tabs, and render the node via the shared node_label_display now that ResourceRow carries node_label (REQ-PICKER-4). Extract a pure row-formatter seam so the alignment+label is unit-testable. ALSO: the bare list is the SUBNET view (a just-run LOCAL perch is invisible cross-subnet until the next advertise tick), so emit a `--local` hint line so a freshly-run endpoint isn't perceived as lost. (v0.10.0; operator-flagged + doyle dispatch 2026-06-17)",
2026-06-18T11:18:00.1280476Z       "requiredStages": [
2026-06-18T11:18:00.1280572Z         "impl",
2026-06-18T11:18:00.1280663Z         "unit"
2026-06-18T11:18:00.1280738Z       ],
2026-06-18T11:18:00.1280829Z       "stages": {
2026-06-18T11:18:00.1280916Z         "doc": {
2026-06-18T11:18:00.1281020Z           "complete": false,
2026-06-18T11:18:00.1281110Z           "evidence": []
2026-06-18T11:18:00.1281197Z         },
2026-06-18T11:18:00.1281287Z         "impl": {
2026-06-18T11:18:00.1281373Z           "complete": true,
2026-06-18T11:18:00.1281468Z           "evidence": [
2026-06-18T11:18:00.1281559Z             {
2026-06-18T11:18:00.1281668Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1281754Z               "line": 1690
2026-06-18T11:18:00.1281832Z             }
2026-06-18T11:18:00.1281926Z           ]
2026-06-18T11:18:00.1282007Z         },
2026-06-18T11:18:00.1282093Z         "int": {
2026-06-18T11:18:00.1282180Z           "complete": false,
2026-06-18T11:18:00.1282273Z           "evidence": []
2026-06-18T11:18:00.1282355Z         },
2026-06-18T11:18:00.1282446Z         "unit": {
2026-06-18T11:18:00.1282542Z           "complete": true,
2026-06-18T11:18:00.1282617Z           "evidence": [
2026-06-18T11:18:00.1282701Z             {
2026-06-18T11:18:00.1282812Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1282910Z               "line": 7365
2026-06-18T11:18:00.1282995Z             }
2026-06-18T11:18:00.1283072Z           ]
2026-06-18T11:18:00.1283153Z         }
2026-06-18T11:18:00.1283239Z       }
2026-06-18T11:18:00.1283319Z     },
2026-06-18T11:18:00.1283506Z     {
2026-06-18T11:18:00.1283625Z       "id": "REQ-PICKER-ADAPTER-DESCRIPTION",
2026-06-18T11:18:00.1284980Z       "title": "The Create-new adapter-CHOICE screen of `spt endpoint run`'s picker shows a right-hand Description panel (like the Pick-existing endpoint picker's two-pane) surfacing per-adapter detail: install date, last-updated, adapter TYPE / the endpoint types it hosts, and the adapter description — so the user can see WHAT each adapter is before choosing it (today the selector lists bare names). DEFERRED fast-follow to v0.12.0 (operator 2026-06-18). (post-v0.12.0)",
2026-06-18T11:18:00.1285085Z       "requiredStages": [],
2026-06-18T11:18:00.1285179Z       "stages": {
2026-06-18T11:18:00.1285369Z         "doc": {
2026-06-18T11:18:00.1285463Z           "complete": false,
2026-06-18T11:18:00.1285552Z           "evidence": []
2026-06-18T11:18:00.1285643Z         },
2026-06-18T11:18:00.1285730Z         "impl": {
2026-06-18T11:18:00.1285815Z           "complete": false,
2026-06-18T11:18:00.1285919Z           "evidence": []
2026-06-18T11:18:00.1286006Z         },
2026-06-18T11:18:00.1286092Z         "int": {
2026-06-18T11:18:00.1286187Z           "complete": false,
2026-06-18T11:18:00.1286287Z           "evidence": []
2026-06-18T11:18:00.1286373Z         },
2026-06-18T11:18:00.1286459Z         "unit": {
2026-06-18T11:18:00.1286553Z           "complete": false,
2026-06-18T11:18:00.1286640Z           "evidence": []
2026-06-18T11:18:00.1286735Z         }
2026-06-18T11:18:00.1286812Z       }
2026-06-18T11:18:00.1286902Z     },
2026-06-18T11:18:00.1286989Z     {
2026-06-18T11:18:00.1287078Z       "id": "REQ-PRES-1",
2026-06-18T11:18:00.1288384Z       "title": "Presence resolution: the presence datum (last_active_node, last_active_endpoint, ts) gossiped subnet-wide via the agent-interaction heartbeat (rides registry distribution, visibility-gated) + one first-class most-recently-active resolution API consumed by notif first-fire, update-consent delivery, consent escalation, and shell wake resolution (M5 scope decision 1: resolution only — the PresenceChannel endpoint stays deferred)",
2026-06-18T11:18:00.1288498Z       "requiredStages": [
2026-06-18T11:18:00.1288590Z         "impl",
2026-06-18T11:18:00.1288671Z         "unit",
2026-06-18T11:18:00.1288760Z         "int"
2026-06-18T11:18:00.1288842Z       ],
2026-06-18T11:18:00.1288929Z       "stages": {
2026-06-18T11:18:00.1289084Z         "doc": {
2026-06-18T11:18:00.1289181Z           "complete": true,
2026-06-18T11:18:00.1289271Z           "evidence": [
2026-06-18T11:18:00.1289357Z             {
2026-06-18T11:18:00.1289461Z               "path": "docs/DEFERRED.md",
2026-06-18T11:18:00.1289544Z               "line": 11
2026-06-18T11:18:00.1289642Z             }
2026-06-18T11:18:00.1289728Z           ]
2026-06-18T11:18:00.1289806Z         },
2026-06-18T11:18:00.1289896Z         "impl": {
2026-06-18T11:18:00.1289990Z           "complete": true,
2026-06-18T11:18:00.1290077Z           "evidence": [
2026-06-18T11:18:00.1290173Z             {
2026-06-18T11:18:00.1290310Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T11:18:00.1290409Z               "line": 515
2026-06-18T11:18:00.1290490Z             },
2026-06-18T11:18:00.1290566Z             {
2026-06-18T11:18:00.1290693Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T11:18:00.1290779Z               "line": 567
2026-06-18T11:18:00.1290865Z             },
2026-06-18T11:18:00.1290946Z             {
2026-06-18T11:18:00.1291065Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1291152Z               "line": 188
2026-06-18T11:18:00.1291237Z             },
2026-06-18T11:18:00.1291322Z             {
2026-06-18T11:18:00.1291448Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1291547Z               "line": 214
2026-06-18T11:18:00.1291627Z             },
2026-06-18T11:18:00.1291709Z             {
2026-06-18T11:18:00.1291833Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-18T11:18:00.1291923Z               "line": 28
2026-06-18T11:18:00.1292120Z             },
2026-06-18T11:18:00.1292205Z             {
2026-06-18T11:18:00.1292328Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-18T11:18:00.1292411Z               "line": 105
2026-06-18T11:18:00.1292490Z             },
2026-06-18T11:18:00.1292572Z             {
2026-06-18T11:18:00.1292683Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-18T11:18:00.1292778Z               "line": 161
2026-06-18T11:18:00.1292857Z             },
2026-06-18T11:18:00.1292939Z             {
2026-06-18T11:18:00.1293060Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-18T11:18:00.1293148Z               "line": 180
2026-06-18T11:18:00.1293343Z             },
2026-06-18T11:18:00.1293419Z             {
2026-06-18T11:18:00.1293551Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1293632Z               "line": 421
2026-06-18T11:18:00.1293718Z             },
2026-06-18T11:18:00.1293799Z             {
2026-06-18T11:18:00.1293922Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T11:18:00.1294019Z               "line": 289
2026-06-18T11:18:00.1294095Z             },
2026-06-18T11:18:00.1294180Z             {
2026-06-18T11:18:00.1294295Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T11:18:00.1294376Z               "line": 336
2026-06-18T11:18:00.1294462Z             },
2026-06-18T11:18:00.1294556Z             {
2026-06-18T11:18:00.1294681Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T11:18:00.1294767Z               "line": 362
2026-06-18T11:18:00.1294857Z             },
2026-06-18T11:18:00.1294929Z             {
2026-06-18T11:18:00.1295062Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.1295148Z               "line": 100
2026-06-18T11:18:00.1295225Z             }
2026-06-18T11:18:00.1295311Z           ]
2026-06-18T11:18:00.1295396Z         },
2026-06-18T11:18:00.1295492Z         "int": {
2026-06-18T11:18:00.1295598Z           "complete": true,
2026-06-18T11:18:00.1295692Z           "evidence": [
2026-06-18T11:18:00.1295777Z             {
2026-06-18T11:18:00.1295905Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T11:18:00.1295995Z               "line": 561
2026-06-18T11:18:00.1296075Z             },
2026-06-18T11:18:00.1296165Z             {
2026-06-18T11:18:00.1296285Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1296380Z               "line": 746
2026-06-18T11:18:00.1296470Z             },
2026-06-18T11:18:00.1296557Z             {
2026-06-18T11:18:00.1296676Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1296775Z               "line": 1164
2026-06-18T11:18:00.1296857Z             }
2026-06-18T11:18:00.1296938Z           ]
2026-06-18T11:18:00.1297024Z         },
2026-06-18T11:18:00.1297108Z         "unit": {
2026-06-18T11:18:00.1297196Z           "complete": true,
2026-06-18T11:18:00.1297295Z           "evidence": [
2026-06-18T11:18:00.1297376Z             {
2026-06-18T11:18:00.1297491Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1297572Z               "line": 674
2026-06-18T11:18:00.1297653Z             },
2026-06-18T11:18:00.1297738Z             {
2026-06-18T11:18:00.1297859Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-18T11:18:00.1297953Z               "line": 238
2026-06-18T11:18:00.1298034Z             },
2026-06-18T11:18:00.1298126Z             {
2026-06-18T11:18:00.1298235Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-18T11:18:00.1298330Z               "line": 269
2026-06-18T11:18:00.1298412Z             },
2026-06-18T11:18:00.1298493Z             {
2026-06-18T11:18:00.1298615Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-18T11:18:00.1298696Z               "line": 305
2026-06-18T11:18:00.1298787Z             },
2026-06-18T11:18:00.1298859Z             {
2026-06-18T11:18:00.1299063Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-18T11:18:00.1299264Z               "line": 336
2026-06-18T11:18:00.1299339Z             },
2026-06-18T11:18:00.1299422Z             {
2026-06-18T11:18:00.1299540Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1299639Z               "line": 1217
2026-06-18T11:18:00.1299716Z             },
2026-06-18T11:18:00.1299808Z             {
2026-06-18T11:18:00.1299931Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.1300017Z               "line": 1163
2026-06-18T11:18:00.1300099Z             }
2026-06-18T11:18:00.1300184Z           ]
2026-06-18T11:18:00.1300265Z         }
2026-06-18T11:18:00.1300452Z       }
2026-06-18T11:18:00.1300526Z     },
2026-06-18T11:18:00.1300612Z     {
2026-06-18T11:18:00.1300709Z       "id": "REQ-RC-1",
2026-06-18T11:18:00.1302694Z       "title": "`spt rc <id>` — user CLI attaching a local terminal to a broker-held PTY, reusing the cross-node attach machinery (attach.rs request_attach → send_attach_input pump, spt-net AttachRecord codec); local attach is the degenerate single-node case of the cross-node path (rides REQ-TERM-3 byte-stream streaming). Read-only `--view` (watch, no stdin forwarded). Clean detach that does NOT terminate the broker-held session (KNOWN-HAZARDS: PTY ownership stays with the broker; no termination on detach). Explicit detach keybind that cannot collide with harness passthrough input (legacy capsule used a ctrl-b prefix); documented. ConPTY DSR auto-answer in the attach reader (hazard 5.5).",
2026-06-18T11:18:00.1302808Z       "requiredStages": [
2026-06-18T11:18:00.1302898Z         "impl",
2026-06-18T11:18:00.1302995Z         "unit",
2026-06-18T11:18:00.1303093Z         "int"
2026-06-18T11:18:00.1303170Z       ],
2026-06-18T11:18:00.1303248Z       "stages": {
2026-06-18T11:18:00.1303338Z         "doc": {
2026-06-18T11:18:00.1303437Z           "complete": false,
2026-06-18T11:18:00.1303519Z           "evidence": []
2026-06-18T11:18:00.1303615Z         },
2026-06-18T11:18:00.1303704Z         "impl": {
2026-06-18T11:18:00.1303799Z           "complete": true,
2026-06-18T11:18:00.1303889Z           "evidence": [
2026-06-18T11:18:00.1303979Z             {
2026-06-18T11:18:00.1304092Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T11:18:00.1304172Z               "line": 896
2026-06-18T11:18:00.1304254Z             },
2026-06-18T11:18:00.1304336Z             {
2026-06-18T11:18:00.1304463Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.1304550Z               "line": 1243
2026-06-18T11:18:00.1304631Z             },
2026-06-18T11:18:00.1304716Z             {
2026-06-18T11:18:00.1304836Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:18:00.1304945Z               "line": 967
2026-06-18T11:18:00.1305026Z             },
2026-06-18T11:18:00.1305112Z             {
2026-06-18T11:18:00.1305223Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:18:00.1305308Z               "line": 1001
2026-06-18T11:18:00.1305398Z             },
2026-06-18T11:18:00.1305475Z             {
2026-06-18T11:18:00.1305580Z               "path": "crates/spt/src/rc.rs",
2026-06-18T11:18:00.1305670Z               "line": 22
2026-06-18T11:18:00.1305756Z             },
2026-06-18T11:18:00.1305833Z             {
2026-06-18T11:18:00.1305946Z               "path": "crates/spt/src/rc.rs",
2026-06-18T11:18:00.1306042Z               "line": 181
2026-06-18T11:18:00.1306115Z             }
2026-06-18T11:18:00.1306200Z           ]
2026-06-18T11:18:00.1306285Z         },
2026-06-18T11:18:00.1306379Z         "int": {
2026-06-18T11:18:00.1306475Z           "complete": true,
2026-06-18T11:18:00.1306564Z           "evidence": [
2026-06-18T11:18:00.1306664Z             {
2026-06-18T11:18:00.1306787Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T11:18:00.1306879Z               "line": 253
2026-06-18T11:18:00.1306964Z             },
2026-06-18T11:18:00.1307059Z             {
2026-06-18T11:18:00.1307179Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T11:18:00.1307354Z               "line": 280
2026-06-18T11:18:00.1307437Z             },
2026-06-18T11:18:00.1307522Z             {
2026-06-18T11:18:00.1307650Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T11:18:00.1307737Z               "line": 405
2026-06-18T11:18:00.1307822Z             }
2026-06-18T11:18:00.1307913Z           ]
2026-06-18T11:18:00.1307993Z         },
2026-06-18T11:18:00.1308076Z         "unit": {
2026-06-18T11:18:00.1308170Z           "complete": true,
2026-06-18T11:18:00.1308261Z           "evidence": [
2026-06-18T11:18:00.1308337Z             {
2026-06-18T11:18:00.1308461Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:18:00.1308632Z               "line": 1327
2026-06-18T11:18:00.1308710Z             },
2026-06-18T11:18:00.1308795Z             {
2026-06-18T11:18:00.1308895Z               "path": "crates/spt/src/rc.rs",
2026-06-18T11:18:00.1309067Z               "line": 594
2026-06-18T11:18:00.1309147Z             },
2026-06-18T11:18:00.1309237Z             {
2026-06-18T11:18:00.1309347Z               "path": "crates/spt/src/rc.rs",
2026-06-18T11:18:00.1309433Z               "line": 623
2026-06-18T11:18:00.1309524Z             },
2026-06-18T11:18:00.1309609Z             {
2026-06-18T11:18:00.1309705Z               "path": "crates/spt/src/rc.rs",
2026-06-18T11:18:00.1309791Z               "line": 636
2026-06-18T11:18:00.1309871Z             }
2026-06-18T11:18:00.1309957Z           ]
2026-06-18T11:18:00.1310049Z         }
2026-06-18T11:18:00.1310134Z       }
2026-06-18T11:18:00.1310209Z     },
2026-06-18T11:18:00.1310296Z     {
2026-06-18T11:18:00.1310387Z       "id": "REQ-RCVIEW-1",
2026-06-18T11:18:00.1314771Z       "title": "Remote-attach controller/viewer model (CONTEXT.md:317): a session's broker OutputLog serves ONE interactive controller (input + EXCLUSIVE PTY resize; its viewport sets the size, sent on attach + every window change via crossterm Event::Resize) plus ANY NUMBER of read-only `--view` attachers (output-only, no input, no resize; client-side letterbox — center+pad when larger, clip+1-line indicator when smaller; only the local ctrl-b d detach chord). Attach intent is three-valued (`Viewer | Control | Take`, wire-default Control): Control to a FREE endpoint becomes controller, Control to a CONTROLLED endpoint is REFUSED with guidance (`--view`/`--take`) — never auto-viewer, never silent-displace. Wire adds (additive, N-1 skip-unknown): `Request.intent`, `Resize{rows,cols}` (controller-only), `Size{rows,cols}` (→viewer), `Displaced{by}` (→displaced controller). The brain-resume cursor (delivered_through, ADR-0018) tracks the CONTROLLER ONLY; viewers replay from their own from_seq and never move it. Dormancy keys on the controller ONLY: controller attach wakes / controller detach goes dormant (even with viewers present); viewer attach/detach is wake-neutral and may watch a dormant endpoint as-is. v1: viewing is gated identically to driving — a viewer runs the same access_check(Unsolicited) as a controller (watching reveals full session contents = a real disclosure); a lighter distinct watch-gate is deferred to cross-subnet/finer-consent (CONTEXT.md:317 'driving ≠ watching' = the future seam).",
2026-06-18T11:18:00.1314910Z       "requiredStages": [
2026-06-18T11:18:00.1314985Z         "doc",
2026-06-18T11:18:00.1315076Z         "impl",
2026-06-18T11:18:00.1315154Z         "unit",
2026-06-18T11:18:00.1315249Z         "int"
2026-06-18T11:18:00.1315329Z       ],
2026-06-18T11:18:00.1315415Z       "stages": {
2026-06-18T11:18:00.1315501Z         "doc": {
2026-06-18T11:18:00.1315591Z           "complete": true,
2026-06-18T11:18:00.1315691Z           "evidence": [
2026-06-18T11:18:00.1315783Z             {
2026-06-18T11:18:00.1315887Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.1315977Z               "line": 342
2026-06-18T11:18:00.1316064Z             }
2026-06-18T11:18:00.1316154Z           ]
2026-06-18T11:18:00.1316240Z         },
2026-06-18T11:18:00.1316330Z         "impl": {
2026-06-18T11:18:00.1316525Z           "complete": true,
2026-06-18T11:18:00.1316617Z           "evidence": [
2026-06-18T11:18:00.1316703Z             {
2026-06-18T11:18:00.1316826Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-18T11:18:00.1316916Z               "line": 323
2026-06-18T11:18:00.1316997Z             },
2026-06-18T11:18:00.1317078Z             {
2026-06-18T11:18:00.1317200Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.1317299Z               "line": 431
2026-06-18T11:18:00.1317386Z             },
2026-06-18T11:18:00.1317467Z             {
2026-06-18T11:18:00.1317585Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.1317777Z               "line": 442
2026-06-18T11:18:00.1317862Z             },
2026-06-18T11:18:00.1317948Z             {
2026-06-18T11:18:00.1318068Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-18T11:18:00.1318153Z               "line": 41
2026-06-18T11:18:00.1318238Z             },
2026-06-18T11:18:00.1318326Z             {
2026-06-18T11:18:00.1318444Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-18T11:18:00.1318539Z               "line": 62
2026-06-18T11:18:00.1318626Z             },
2026-06-18T11:18:00.1318706Z             {
2026-06-18T11:18:00.1318825Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:18:00.1318921Z               "line": 297
2026-06-18T11:18:00.1319073Z             },
2026-06-18T11:18:00.1319159Z             {
2026-06-18T11:18:00.1319270Z               "path": "crates/spt/src/rc.rs",
2026-06-18T11:18:00.1319355Z               "line": 181
2026-06-18T11:18:00.1319436Z             }
2026-06-18T11:18:00.1319537Z           ]
2026-06-18T11:18:00.1319619Z         },
2026-06-18T11:18:00.1319703Z         "int": {
2026-06-18T11:18:00.1319797Z           "complete": true,
2026-06-18T11:18:00.1319892Z           "evidence": [
2026-06-18T11:18:00.1319970Z             {
2026-06-18T11:18:00.1320088Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T11:18:00.1320193Z               "line": 791
2026-06-18T11:18:00.1320275Z             },
2026-06-18T11:18:00.1320356Z             {
2026-06-18T11:18:00.1320469Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T11:18:00.1320561Z               "line": 831
2026-06-18T11:18:00.1320642Z             },
2026-06-18T11:18:00.1320736Z             {
2026-06-18T11:18:00.1320856Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T11:18:00.1320937Z               "line": 878
2026-06-18T11:18:00.1321023Z             },
2026-06-18T11:18:00.1321103Z             {
2026-06-18T11:18:00.1321224Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T11:18:00.1321318Z               "line": 990
2026-06-18T11:18:00.1321409Z             }
2026-06-18T11:18:00.1321491Z           ]
2026-06-18T11:18:00.1321581Z         },
2026-06-18T11:18:00.1321675Z         "unit": {
2026-06-18T11:18:00.1321772Z           "complete": true,
2026-06-18T11:18:00.1321873Z           "evidence": [
2026-06-18T11:18:00.1321962Z             {
2026-06-18T11:18:00.1322085Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-18T11:18:00.1322171Z               "line": 175
2026-06-18T11:18:00.1322246Z             },
2026-06-18T11:18:00.1322330Z             {
2026-06-18T11:18:00.1322445Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-18T11:18:00.1322537Z               "line": 195
2026-06-18T11:18:00.1322622Z             }
2026-06-18T11:18:00.1322702Z           ]
2026-06-18T11:18:00.1322794Z         }
2026-06-18T11:18:00.1322870Z       }
2026-06-18T11:18:00.1322956Z     },
2026-06-18T11:18:00.1323041Z     {
2026-06-18T11:18:00.1323142Z       "id": "REQ-REACH-1",
2026-06-18T11:18:00.1323303Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-18T11:18:00.1323399Z       "requiredStages": [
2026-06-18T11:18:00.1323490Z         "impl",
2026-06-18T11:18:00.1323566Z         "unit",
2026-06-18T11:18:00.1323655Z         "int"
2026-06-18T11:18:00.1323728Z       ],
2026-06-18T11:18:00.1323947Z       "stages": {
2026-06-18T11:18:00.1324033Z         "doc": {
2026-06-18T11:18:00.1324129Z           "complete": false,
2026-06-18T11:18:00.1324233Z           "evidence": []
2026-06-18T11:18:00.1324314Z         },
2026-06-18T11:18:00.1324406Z         "impl": {
2026-06-18T11:18:00.1324496Z           "complete": true,
2026-06-18T11:18:00.1324577Z           "evidence": [
2026-06-18T11:18:00.1324658Z             {
2026-06-18T11:18:00.1324783Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.1324880Z               "line": 431
2026-06-18T11:18:00.1324957Z             },
2026-06-18T11:18:00.1325042Z             {
2026-06-18T11:18:00.1325250Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-18T11:18:00.1325341Z               "line": 76
2026-06-18T11:18:00.1325422Z             },
2026-06-18T11:18:00.1325508Z             {
2026-06-18T11:18:00.1325621Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-18T11:18:00.1325719Z               "line": 222
2026-06-18T11:18:00.1325804Z             },
2026-06-18T11:18:00.1325879Z             {
2026-06-18T11:18:00.1325995Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-18T11:18:00.1326085Z               "line": 422
2026-06-18T11:18:00.1326166Z             },
2026-06-18T11:18:00.1326251Z             {
2026-06-18T11:18:00.1326357Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-18T11:18:00.1326462Z               "line": 529
2026-06-18T11:18:00.1326537Z             },
2026-06-18T11:18:00.1326624Z             {
2026-06-18T11:18:00.1326738Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-18T11:18:00.1326838Z               "line": 39
2026-06-18T11:18:00.1326939Z             },
2026-06-18T11:18:00.1327025Z             {
2026-06-18T11:18:00.1327143Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:18:00.1327230Z               "line": 289
2026-06-18T11:18:00.1327316Z             },
2026-06-18T11:18:00.1327395Z             {
2026-06-18T11:18:00.1327523Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-18T11:18:00.1327609Z               "line": 88
2026-06-18T11:18:00.1327699Z             },
2026-06-18T11:18:00.1327779Z             {
2026-06-18T11:18:00.1327884Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-18T11:18:00.1327980Z               "line": 98
2026-06-18T11:18:00.1328060Z             },
2026-06-18T11:18:00.1328146Z             {
2026-06-18T11:18:00.1328275Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.1328366Z               "line": 229
2026-06-18T11:18:00.1328456Z             }
2026-06-18T11:18:00.1328537Z           ]
2026-06-18T11:18:00.1328637Z         },
2026-06-18T11:18:00.1328723Z         "int": {
2026-06-18T11:18:00.1328823Z           "complete": true,
2026-06-18T11:18:00.1328919Z           "evidence": [
2026-06-18T11:18:00.1329085Z             {
2026-06-18T11:18:00.1329225Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T11:18:00.1329314Z               "line": 415
2026-06-18T11:18:00.1329409Z             },
2026-06-18T11:18:00.1329501Z             {
2026-06-18T11:18:00.1329619Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T11:18:00.1329719Z               "line": 518
2026-06-18T11:18:00.1329801Z             },
2026-06-18T11:18:00.1329883Z             {
2026-06-18T11:18:00.1330005Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1330097Z               "line": 997
2026-06-18T11:18:00.1330193Z             },
2026-06-18T11:18:00.1330277Z             {
2026-06-18T11:18:00.1330395Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1330496Z               "line": 1382
2026-06-18T11:18:00.1330578Z             }
2026-06-18T11:18:00.1330662Z           ]
2026-06-18T11:18:00.1330753Z         },
2026-06-18T11:18:00.1330844Z         "unit": {
2026-06-18T11:18:00.1330935Z           "complete": true,
2026-06-18T11:18:00.1331020Z           "evidence": [
2026-06-18T11:18:00.1331102Z             {
2026-06-18T11:18:00.1331325Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-18T11:18:00.1331416Z               "line": 639
2026-06-18T11:18:00.1331497Z             },
2026-06-18T11:18:00.1331588Z             {
2026-06-18T11:18:00.1331707Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-18T11:18:00.1331803Z               "line": 660
2026-06-18T11:18:00.1331883Z             },
2026-06-18T11:18:00.1331969Z             {
2026-06-18T11:18:00.1332085Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T11:18:00.1332184Z               "line": 648
2026-06-18T11:18:00.1332269Z             },
2026-06-18T11:18:00.1332351Z             {
2026-06-18T11:18:00.1332578Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-18T11:18:00.1332673Z               "line": 93
2026-06-18T11:18:00.1332769Z             },
2026-06-18T11:18:00.1332853Z             {
2026-06-18T11:18:00.1332971Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-18T11:18:00.1333062Z               "line": 224
2026-06-18T11:18:00.1333149Z             },
2026-06-18T11:18:00.1333234Z             {
2026-06-18T11:18:00.1333339Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-18T11:18:00.1333430Z               "line": 96
2026-06-18T11:18:00.1333511Z             },
2026-06-18T11:18:00.1333596Z             {
2026-06-18T11:18:00.1333702Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-18T11:18:00.1333787Z               "line": 146
2026-06-18T11:18:00.1333873Z             },
2026-06-18T11:18:00.1333959Z             {
2026-06-18T11:18:00.1334064Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:18:00.1334164Z               "line": 672
2026-06-18T11:18:00.1334250Z             },
2026-06-18T11:18:00.1334331Z             {
2026-06-18T11:18:00.1334440Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-18T11:18:00.1334531Z               "line": 118
2026-06-18T11:18:00.1334613Z             },
2026-06-18T11:18:00.1334703Z             {
2026-06-18T11:18:00.1334808Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-18T11:18:00.1334899Z               "line": 148
2026-06-18T11:18:00.1334985Z             },
2026-06-18T11:18:00.1335074Z             {
2026-06-18T11:18:00.1335194Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.1335281Z               "line": 924
2026-06-18T11:18:00.1335366Z             }
2026-06-18T11:18:00.1335455Z           ]
2026-06-18T11:18:00.1335540Z         }
2026-06-18T11:18:00.1335631Z       }
2026-06-18T11:18:00.1335716Z     },
2026-06-18T11:18:00.1335800Z     {
2026-06-18T11:18:00.1335896Z       "id": "REQ-REACH-2",
2026-06-18T11:18:00.1336068Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-18T11:18:00.1336168Z       "requiredStages": [],
2026-06-18T11:18:00.1336259Z       "stages": {
2026-06-18T11:18:00.1336345Z         "doc": {
2026-06-18T11:18:00.1336434Z           "complete": false,
2026-06-18T11:18:00.1336536Z           "evidence": []
2026-06-18T11:18:00.1336622Z         },
2026-06-18T11:18:00.1336712Z         "impl": {
2026-06-18T11:18:00.1336807Z           "complete": false,
2026-06-18T11:18:00.1336908Z           "evidence": []
2026-06-18T11:18:00.1336997Z         },
2026-06-18T11:18:00.1337083Z         "int": {
2026-06-18T11:18:00.1337185Z           "complete": false,
2026-06-18T11:18:00.1337275Z           "evidence": []
2026-06-18T11:18:00.1337360Z         },
2026-06-18T11:18:00.1337441Z         "unit": {
2026-06-18T11:18:00.1337542Z           "complete": false,
2026-06-18T11:18:00.1337636Z           "evidence": []
2026-06-18T11:18:00.1337713Z         }
2026-06-18T11:18:00.1337795Z       }
2026-06-18T11:18:00.1337886Z     },
2026-06-18T11:18:00.1337970Z     {
2026-06-18T11:18:00.1338074Z       "id": "REQ-READY-AGENT-RESUME",
2026-06-18T11:18:00.1341527Z       "title": "An offline ReadyAgent shows in `spt endpoint run`'s picker Resume-from-history and resumes correctly — closing the gap that today only LiveAgents do. ROOT: a harness-hosted ready bind (ReadyAgent::start_homed, ready.rs) writes info.json DIRECTLY and never appends the session ledger (unlike the shared establish_perch:250 live path), so a ready agent — though it has a session_id — produces ZERO ledger rows → the picker's offline+local Resume-from-history (which gates on ledger rows) never offers it. FIX (1): ledger the ready bind (ReadyAgent::start_homed → sessions::append Boot, mirroring establish_perch). FIX (2): `spt endpoint run --resume <session>` honors the adapter MANIFEST's endpoint TYPE — a ReadyAgent manifest (no [session.psyche_init]) resumes as a ready endpoint (poll listener, NO psyche-host); a LiveAgent (with psyche_init) as live. NO new bringup mode + NO picker changes (operator 2026-06-18): `spt endpoint run` is the spt-hosted ENDPOINT bringup for BOTH types, the type IS the adapter-manifest's concern (psyche-host already keys on psyche_init presence) — so (2) likely already holds; VERIFY at code, build only the residual. (v0.12.0)",
2026-06-18T11:18:00.1341856Z       "requiredStages": [
2026-06-18T11:18:00.1344605Z         "doc",
2026-06-18T11:18:00.1344710Z         "impl",
2026-06-18T11:18:00.1344790Z         "unit",
2026-06-18T11:18:00.1344882Z         "int"
2026-06-18T11:18:00.1344967Z       ],
2026-06-18T11:18:00.1345063Z       "stages": {
2026-06-18T11:18:00.1345139Z         "doc": {
2026-06-18T11:18:00.1345249Z           "complete": true,
2026-06-18T11:18:00.1345343Z           "evidence": [
2026-06-18T11:18:00.1345429Z             {
2026-06-18T11:18:00.1345531Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.1345625Z               "line": 369
2026-06-18T11:18:00.1345702Z             }
2026-06-18T11:18:00.1345783Z           ]
2026-06-18T11:18:00.1345889Z         },
2026-06-18T11:18:00.1345978Z         "impl": {
2026-06-18T11:18:00.1346067Z           "complete": true,
2026-06-18T11:18:00.1346163Z           "evidence": [
2026-06-18T11:18:00.1346248Z             {
2026-06-18T11:18:00.1346375Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T11:18:00.1346476Z               "line": 110
2026-06-18T11:18:00.1346561Z             }
2026-06-18T11:18:00.1346638Z           ]
2026-06-18T11:18:00.1346723Z         },
2026-06-18T11:18:00.1346815Z         "int": {
2026-06-18T11:18:00.1346900Z           "complete": true,
2026-06-18T11:18:00.1346999Z           "evidence": [
2026-06-18T11:18:00.1347081Z             {
2026-06-18T11:18:00.1347239Z               "path": "crates/spt/tests/ready_resume_ledger_e2e.rs",
2026-06-18T11:18:00.1347333Z               "line": 26
2026-06-18T11:18:00.1347420Z             }
2026-06-18T11:18:00.1347506Z           ]
2026-06-18T11:18:00.1347587Z         },
2026-06-18T11:18:00.1347667Z         "unit": {
2026-06-18T11:18:00.1347768Z           "complete": true,
2026-06-18T11:18:00.1347858Z           "evidence": [
2026-06-18T11:18:00.1347939Z             {
2026-06-18T11:18:00.1348055Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T11:18:00.1348145Z               "line": 318
2026-06-18T11:18:00.1348229Z             }
2026-06-18T11:18:00.1348321Z           ]
2026-06-18T11:18:00.1348403Z         }
2026-06-18T11:18:00.1348493Z       }
2026-06-18T11:18:00.1348577Z     },
2026-06-18T11:18:00.1348653Z     {
2026-06-18T11:18:00.1348749Z       "id": "REQ-REL-1",
2026-06-18T11:18:00.1349209Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-18T11:18:00.1349309Z       "requiredStages": [
2026-06-18T11:18:00.1349391Z         "doc",
2026-06-18T11:18:00.1349477Z         "impl"
2026-06-18T11:18:00.1349566Z       ],
2026-06-18T11:18:00.1349653Z       "stages": {
2026-06-18T11:18:00.1349744Z         "doc": {
2026-06-18T11:18:00.1349848Z           "complete": true,
2026-06-18T11:18:00.1349943Z           "evidence": [
2026-06-18T11:18:00.1350020Z             {
2026-06-18T11:18:00.1350244Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-18T11:18:00.1350331Z               "line": 3
2026-06-18T11:18:00.1350534Z             }
2026-06-18T11:18:00.1350621Z           ]
2026-06-18T11:18:00.1350702Z         },
2026-06-18T11:18:00.1350792Z         "impl": {
2026-06-18T11:18:00.1350878Z           "complete": true,
2026-06-18T11:18:00.1350970Z           "evidence": [
2026-06-18T11:18:00.1351050Z             {
2026-06-18T11:18:00.1351183Z               "path": ".github/workflows/docs-publish.yml",
2026-06-18T11:18:00.1351265Z               "line": 11
2026-06-18T11:18:00.1351346Z             },
2026-06-18T11:18:00.1351430Z             {
2026-06-18T11:18:00.1351544Z               "path": "crates/xtask/src/main.rs",
2026-06-18T11:18:00.1351636Z               "line": 265
2026-06-18T11:18:00.1351825Z             }
2026-06-18T11:18:00.1351907Z           ]
2026-06-18T11:18:00.1351998Z         },
2026-06-18T11:18:00.1352073Z         "int": {
2026-06-18T11:18:00.1352173Z           "complete": false,
2026-06-18T11:18:00.1352266Z           "evidence": []
2026-06-18T11:18:00.1352356Z         },
2026-06-18T11:18:00.1352445Z         "unit": {
2026-06-18T11:18:00.1352532Z           "complete": false,
2026-06-18T11:18:00.1352618Z           "evidence": []
2026-06-18T11:18:00.1352703Z         }
2026-06-18T11:18:00.1352794Z       }
2026-06-18T11:18:00.1352871Z     },
2026-06-18T11:18:00.1352951Z     {
2026-06-18T11:18:00.1353051Z       "id": "REQ-REL-2",
2026-06-18T11:18:00.1353525Z       "title": "Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline",
2026-06-18T11:18:00.1353627Z       "requiredStages": [
2026-06-18T11:18:00.1353713Z         "impl",
2026-06-18T11:18:00.1353817Z         "int"
2026-06-18T11:18:00.1353898Z       ],
2026-06-18T11:18:00.1353982Z       "stages": {
2026-06-18T11:18:00.1354063Z         "doc": {
2026-06-18T11:18:00.1354159Z           "complete": true,
2026-06-18T11:18:00.1354260Z           "evidence": [
2026-06-18T11:18:00.1354340Z             {
2026-06-18T11:18:00.1354454Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-18T11:18:00.1354555Z               "line": 6
2026-06-18T11:18:00.1354640Z             }
2026-06-18T11:18:00.1354716Z           ]
2026-06-18T11:18:00.1354794Z         },
2026-06-18T11:18:00.1354879Z         "impl": {
2026-06-18T11:18:00.1354964Z           "complete": true,
2026-06-18T11:18:00.1355060Z           "evidence": [
2026-06-18T11:18:00.1355137Z             {
2026-06-18T11:18:00.1355260Z               "path": ".github/workflows/release.yml",
2026-06-18T11:18:00.1355355Z               "line": 16
2026-06-18T11:18:00.1355438Z             },
2026-06-18T11:18:00.1355522Z             {
2026-06-18T11:18:00.1355627Z               "path": "crates/xtask/src/main.rs",
2026-06-18T11:18:00.1355728Z               "line": 352
2026-06-18T11:18:00.1355814Z             },
2026-06-18T11:18:00.1355894Z             {
2026-06-18T11:18:00.1355994Z               "path": "crates/xtask/src/main.rs",
2026-06-18T11:18:00.1356082Z               "line": 426
2026-06-18T11:18:00.1356185Z             },
2026-06-18T11:18:00.1356271Z             {
2026-06-18T11:18:00.1356382Z               "path": "crates/xtask/src/main.rs",
2026-06-18T11:18:00.1356477Z               "line": 588
2026-06-18T11:18:00.1356561Z             },
2026-06-18T11:18:00.1356642Z             {
2026-06-18T11:18:00.1356737Z               "path": "crates/xtask/src/main.rs",
2026-06-18T11:18:00.1356831Z               "line": 720
2026-06-18T11:18:00.1356916Z             }
2026-06-18T11:18:00.1357002Z           ]
2026-06-18T11:18:00.1357084Z         },
2026-06-18T11:18:00.1357169Z         "int": {
2026-06-18T11:18:00.1357264Z           "complete": true,
2026-06-18T11:18:00.1357351Z           "evidence": [
2026-06-18T11:18:00.1357432Z             {
2026-06-18T11:18:00.1357555Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-18T11:18:00.1357646Z               "line": 13
2026-06-18T11:18:00.1357723Z             }
2026-06-18T11:18:00.1357809Z           ]
2026-06-18T11:18:00.1357893Z         },
2026-06-18T11:18:00.1358094Z         "unit": {
2026-06-18T11:18:00.1358190Z           "complete": false,
2026-06-18T11:18:00.1358271Z           "evidence": []
2026-06-18T11:18:00.1358357Z         }
2026-06-18T11:18:00.1358433Z       }
2026-06-18T11:18:00.1358509Z     },
2026-06-18T11:18:00.1358590Z     {
2026-06-18T11:18:00.1358677Z       "id": "REQ-REL-3",
2026-06-18T11:18:00.1359180Z       "title": "Two-key release-signing trust anchor: primary + offline never-used recovery, both pubkeys embedded in the binary's trusted set, manual local signing (ADR-0015)",
2026-06-18T11:18:00.1359271Z       "requiredStages": [
2026-06-18T11:18:00.1359351Z         "impl",
2026-06-18T11:18:00.1359544Z         "unit"
2026-06-18T11:18:00.1359631Z       ],
2026-06-18T11:18:00.1359708Z       "stages": {
2026-06-18T11:18:00.1359797Z         "doc": {
2026-06-18T11:18:00.1359898Z           "complete": false,
2026-06-18T11:18:00.1359989Z           "evidence": []
2026-06-18T11:18:00.1360079Z         },
2026-06-18T11:18:00.1360165Z         "impl": {
2026-06-18T11:18:00.1360261Z           "complete": true,
2026-06-18T11:18:00.1360356Z           "evidence": [
2026-06-18T11:18:00.1360441Z             {
2026-06-18T11:18:00.1360571Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1360651Z               "line": 237
2026-06-18T11:18:00.1360737Z             },
2026-06-18T11:18:00.1360818Z             {
2026-06-18T11:18:00.1360938Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1361024Z               "line": 289
2026-06-18T11:18:00.1361109Z             },
2026-06-18T11:18:00.1361196Z             {
2026-06-18T11:18:00.1361304Z               "path": "crates/xtask/src/main.rs",
2026-06-18T11:18:00.1361399Z               "line": 329
2026-06-18T11:18:00.1361487Z             },
2026-06-18T11:18:00.1361568Z             {
2026-06-18T11:18:00.1361671Z               "path": "crates/xtask/src/main.rs",
2026-06-18T11:18:00.1361753Z               "line": 353
2026-06-18T11:18:00.1361835Z             },
2026-06-18T11:18:00.1361925Z             {
2026-06-18T11:18:00.1362028Z               "path": "crates/xtask/src/main.rs",
2026-06-18T11:18:00.1362114Z               "line": 394
2026-06-18T11:18:00.1362196Z             }
2026-06-18T11:18:00.1362277Z           ]
2026-06-18T11:18:00.1362366Z         },
2026-06-18T11:18:00.1362453Z         "int": {
2026-06-18T11:18:00.1362539Z           "complete": false,
2026-06-18T11:18:00.1362634Z           "evidence": []
2026-06-18T11:18:00.1362715Z         },
2026-06-18T11:18:00.1362797Z         "unit": {
2026-06-18T11:18:00.1362896Z           "complete": true,
2026-06-18T11:18:00.1362976Z           "evidence": [
2026-06-18T11:18:00.1363058Z             {
2026-06-18T11:18:00.1363187Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1363282Z               "line": 1045
2026-06-18T11:18:00.1363368Z             },
2026-06-18T11:18:00.1363446Z             {
2026-06-18T11:18:00.1363568Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1363654Z               "line": 1104
2026-06-18T11:18:00.1363741Z             }
2026-06-18T11:18:00.1363817Z           ]
2026-06-18T11:18:00.1363897Z         }
2026-06-18T11:18:00.1363983Z       }
2026-06-18T11:18:00.1364060Z     },
2026-06-18T11:18:00.1364146Z     {
2026-06-18T11:18:00.1364249Z       "id": "REQ-RUN-PICKER",
2026-06-18T11:18:00.1368860Z       "title": "Interactive `spt endpoint run` picker (ratatui TUI): bare `spt endpoint run` (no --adapter/--id) enters an in-process picker (flags-present = the REQ-HOST-RUN-1 non-interactive path, untouched). Layer 1 picks kind (Create new | Pick existing). Create-new: choose a registered kind=\"harness\" adapter with its shipped+local profiles tree-nested (registry::registered / manifest.profiles / local_profile_names) → enter a charset-validated id → start. Pick-existing: category select (left/right) over [<cwd-project> | Local node | Subnet], endpoints grouped + alphabetically sorted per category, a status square per endpoint (online green ■ / offline gray ▢ — the blue \"attached\" tri-state + Kick are DEFERRED to a broker attach-presence slice, M12-W2-RULING Q1), type-to-filter (`/`, nucleo-matcher), a pinned keybind legend, and a right-half two-pane description (harness adapter:profile · best-effort project history newest→oldest from the contextstore p-<project> branches, empty-if-none · `spt endpoint description`). Confirm layer offers status-dependent options — Attach/Start/View (rc pump / cmd_endpoint_run) · Instantiate-locally (remote) · Change-harness-adapter (offline) · Fork (cmd_fork) · Resume-from-history (offline+LOCAL only; enumerate spt_store::sessions::last_k, titles `<project> @ <ts> (…id5)`, feed session_id → cmd_endpoint_run --resume). A single action enum is the source of truth so a future tap-mode (phone PTY) layers on without re-coupling to keybinds. EVERY terminal action routes through cmd_endpoint_run / existing CLI fns — no second bringup path.",
2026-06-18T11:18:00.1369251Z       "requiredStages": [
2026-06-18T11:18:00.1369345Z         "doc",
2026-06-18T11:18:00.1369470Z         "impl",
2026-06-18T11:18:00.1369547Z         "unit"
2026-06-18T11:18:00.1369632Z       ],
2026-06-18T11:18:00.1369711Z       "stages": {
2026-06-18T11:18:00.1369797Z         "doc": {
2026-06-18T11:18:00.1369893Z           "complete": true,
2026-06-18T11:18:00.1369981Z           "evidence": [
2026-06-18T11:18:00.1370062Z             {
2026-06-18T11:18:00.1370163Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.1370259Z               "line": 346
2026-06-18T11:18:00.1370348Z             }
2026-06-18T11:18:00.1370429Z           ]
2026-06-18T11:18:00.1370521Z         },
2026-06-18T11:18:00.1370597Z         "impl": {
2026-06-18T11:18:00.1370753Z           "complete": true,
2026-06-18T11:18:00.1370859Z           "evidence": [
2026-06-18T11:18:00.1370950Z             {
2026-06-18T11:18:00.1371059Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1371155Z               "line": 953
2026-06-18T11:18:00.1371235Z             },
2026-06-18T11:18:00.1371321Z             {
2026-06-18T11:18:00.1371436Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1371522Z               "line": 963
2026-06-18T11:18:00.1371603Z             },
2026-06-18T11:18:00.1371688Z             {
2026-06-18T11:18:00.1371808Z               "path": "crates/spt/src/picker/data.rs",
2026-06-18T11:18:00.1371893Z               "line": 9
2026-06-18T11:18:00.1371979Z             },
2026-06-18T11:18:00.1372062Z             {
2026-06-18T11:18:00.1372170Z               "path": "crates/spt/src/picker/data.rs",
2026-06-18T11:18:00.1372265Z               "line": 67
2026-06-18T11:18:00.1372337Z             },
2026-06-18T11:18:00.1372419Z             {
2026-06-18T11:18:00.1372546Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-18T11:18:00.1372636Z               "line": 16
2026-06-18T11:18:00.1372717Z             },
2026-06-18T11:18:00.1372799Z             {
2026-06-18T11:18:00.1372922Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-18T11:18:00.1373018Z               "line": 249
2026-06-18T11:18:00.1373108Z             },
2026-06-18T11:18:00.1373189Z             {
2026-06-18T11:18:00.1373308Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T11:18:00.1373405Z               "line": 11
2026-06-18T11:18:00.1373491Z             },
2026-06-18T11:18:00.1373580Z             {
2026-06-18T11:18:00.1373695Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T11:18:00.1373785Z               "line": 115
2026-06-18T11:18:00.1373899Z             },
2026-06-18T11:18:00.1374025Z             {
2026-06-18T11:18:00.1374143Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T11:18:00.1374228Z               "line": 519
2026-06-18T11:18:00.1374325Z             },
2026-06-18T11:18:00.1374410Z             {
2026-06-18T11:18:00.1374514Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T11:18:00.1374611Z               "line": 600
2026-06-18T11:18:00.1374692Z             },
2026-06-18T11:18:00.1374776Z             {
2026-06-18T11:18:00.1374986Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T11:18:00.1375075Z               "line": 653
2026-06-18T11:18:00.1375160Z             },
2026-06-18T11:18:00.1375236Z             {
2026-06-18T11:18:00.1375356Z               "path": "crates/spt/src/picker/view.rs",
2026-06-18T11:18:00.1375431Z               "line": 8
2026-06-18T11:18:00.1375508Z             }
2026-06-18T11:18:00.1375589Z           ]
2026-06-18T11:18:00.1375671Z         },
2026-06-18T11:18:00.1375751Z         "int": {
2026-06-18T11:18:00.1375850Z           "complete": false,
2026-06-18T11:18:00.1375938Z           "evidence": []
2026-06-18T11:18:00.1376023Z         },
2026-06-18T11:18:00.1376195Z         "unit": {
2026-06-18T11:18:00.1376286Z           "complete": true,
2026-06-18T11:18:00.1376376Z           "evidence": [
2026-06-18T11:18:00.1376466Z             {
2026-06-18T11:18:00.1376572Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1376671Z               "line": 7477
2026-06-18T11:18:00.1376757Z             },
2026-06-18T11:18:00.1376844Z             {
2026-06-18T11:18:00.1376939Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1377029Z               "line": 7488
2026-06-18T11:18:00.1377120Z             },
2026-06-18T11:18:00.1377202Z             {
2026-06-18T11:18:00.1377319Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T11:18:00.1377411Z               "line": 806
2026-06-18T11:18:00.1377497Z             },
2026-06-18T11:18:00.1377583Z             {
2026-06-18T11:18:00.1377691Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T11:18:00.1377781Z               "line": 855
2026-06-18T11:18:00.1377877Z             },
2026-06-18T11:18:00.1377960Z             {
2026-06-18T11:18:00.1378074Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T11:18:00.1378161Z               "line": 872
2026-06-18T11:18:00.1378247Z             },
2026-06-18T11:18:00.1378337Z             {
2026-06-18T11:18:00.1378451Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T11:18:00.1378552Z               "line": 892
2026-06-18T11:18:00.1378632Z             },
2026-06-18T11:18:00.1378713Z             {
2026-06-18T11:18:00.1378829Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T11:18:00.1378914Z               "line": 906
2026-06-18T11:18:00.1379072Z             },
2026-06-18T11:18:00.1379153Z             {
2026-06-18T11:18:00.1379257Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T11:18:00.1379343Z               "line": 915
2026-06-18T11:18:00.1379425Z             },
2026-06-18T11:18:00.1379506Z             {
2026-06-18T11:18:00.1379610Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T11:18:00.1379716Z               "line": 926
2026-06-18T11:18:00.1379806Z             },
2026-06-18T11:18:00.1379881Z             {
2026-06-18T11:18:00.1379996Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T11:18:00.1380079Z               "line": 948
2026-06-18T11:18:00.1380173Z             },
2026-06-18T11:18:00.1380253Z             {
2026-06-18T11:18:00.1380367Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T11:18:00.1380462Z               "line": 967
2026-06-18T11:18:00.1380541Z             },
2026-06-18T11:18:00.1380626Z             {
2026-06-18T11:18:00.1380737Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T11:18:00.1380838Z               "line": 1004
2026-06-18T11:18:00.1380922Z             },
2026-06-18T11:18:00.1381013Z             {
2026-06-18T11:18:00.1381133Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T11:18:00.1381213Z               "line": 1033
2026-06-18T11:18:00.1381314Z             },
2026-06-18T11:18:00.1381400Z             {
2026-06-18T11:18:00.1381505Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T11:18:00.1381609Z               "line": 1046
2026-06-18T11:18:00.1381686Z             },
2026-06-18T11:18:00.1381772Z             {
2026-06-18T11:18:00.1381886Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T11:18:00.1382087Z               "line": 1090
2026-06-18T11:18:00.1382163Z             },
2026-06-18T11:18:00.1382258Z             {
2026-06-18T11:18:00.1382368Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T11:18:00.1382453Z               "line": 1117
2026-06-18T11:18:00.1382544Z             },
2026-06-18T11:18:00.1382626Z             {
2026-06-18T11:18:00.1382744Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T11:18:00.1382830Z               "line": 1133
2026-06-18T11:18:00.1382917Z             },
2026-06-18T11:18:00.1382993Z             {
2026-06-18T11:18:00.1383111Z               "path": "crates/spt/src/picker/view.rs",
2026-06-18T11:18:00.1383306Z               "line": 483
2026-06-18T11:18:00.1383393Z             },
2026-06-18T11:18:00.1383491Z             {
2026-06-18T11:18:00.1383597Z               "path": "crates/spt/src/picker/view.rs",
2026-06-18T11:18:00.1383697Z               "line": 495
2026-06-18T11:18:00.1383801Z             },
2026-06-18T11:18:00.1383883Z             {
2026-06-18T11:18:00.1384002Z               "path": "crates/spt/src/picker/view.rs",
2026-06-18T11:18:00.1384097Z               "line": 513
2026-06-18T11:18:00.1384183Z             },
2026-06-18T11:18:00.1384270Z             {
2026-06-18T11:18:00.1384374Z               "path": "crates/spt/src/picker/view.rs",
2026-06-18T11:18:00.1384469Z               "line": 535
2026-06-18T11:18:00.1384547Z             },
2026-06-18T11:18:00.1384637Z             {
2026-06-18T11:18:00.1384736Z               "path": "crates/spt/src/picker/view.rs",
2026-06-18T11:18:00.1384822Z               "line": 545
2026-06-18T11:18:00.1384919Z             },
2026-06-18T11:18:00.1385007Z             {
2026-06-18T11:18:00.1385123Z               "path": "crates/spt/src/picker/view.rs",
2026-06-18T11:18:00.1385214Z               "line": 568
2026-06-18T11:18:00.1385290Z             }
2026-06-18T11:18:00.1385374Z           ]
2026-06-18T11:18:00.1385459Z         }
2026-06-18T11:18:00.1385560Z       }
2026-06-18T11:18:00.1385644Z     },
2026-06-18T11:18:00.1385734Z     {
2026-06-18T11:18:00.1385830Z       "id": "REQ-RUN-SHORTCUT",
2026-06-18T11:18:00.1390484Z       "title": "`<basename>-<id>` launcher shortcut generation (picker `s` keybind, M12-W2-T2.4): from any pre-start options set the picker writes/updates a `<basename>-<id>` launcher at the project root baking the current selection's non-interactive `spt endpoint run` flags (terminal actions only: adapter[:profile] + id + (create|resume) + (start|attach|view); Kick/Instantiate/Change-adapter/Fork are interactive-only, not bakeable). BASENAME IS A PARAMETER (operator rev. 2026-06-14): harness-agnostic spt-core defaults to `spt` (→ `spt-<id>`); an adapter/flow OVERRIDES it (spt-claude-code → `cc`), so spt-core NEVER bakes `cc` (a harness name) into itself. The basename must be a DISTINCT token, never bare `spt` (a `spt.cmd` would shadow the real `spt.exe` only under cmd.exe cwd-first search, silently no-op in PowerShell/Unix, and self-recurse). The script is the CURRENT OS's native form — `.cmd` on Windows (NOT `.ps1`: default PATHEXT excludes `.ps1` so a bare/ext-less name never resolves one; `.cmd` is PATHEXT-resolvable), POSIX `sh` (+chmod +x) on Unix (a single portable form can't be both). The generated header documents the invocation reality (cmd.exe bare `<name>` in the project dir / PowerShell `.\\<name>` / Unix `./<name>`; a truly-bare basename on PATH = a PATH-installed launcher, `/spt:setup`'s job). Overwrite is SENTINEL-guarded: the generator writes + checks a generated-by header marker — it overwrites its own prior output freely, but REFUSES + warns if a same-named file lacks the sentinel (never clobber a user file). Requires the additive `--create` flag on `Run{}` (the default-fresh made explicit; N-1-safe).",
2026-06-18T11:18:00.1390619Z       "requiredStages": [
2026-06-18T11:18:00.1390710Z         "doc",
2026-06-18T11:18:00.1390785Z         "impl",
2026-06-18T11:18:00.1390874Z         "unit"
2026-06-18T11:18:00.1390956Z       ],
2026-06-18T11:18:00.1391154Z       "stages": {
2026-06-18T11:18:00.1391244Z         "doc": {
2026-06-18T11:18:00.1391345Z           "complete": true,
2026-06-18T11:18:00.1391435Z           "evidence": [
2026-06-18T11:18:00.1391515Z             {
2026-06-18T11:18:00.1391617Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.1391707Z               "line": 387
2026-06-18T11:18:00.1391788Z             }
2026-06-18T11:18:00.1391874Z           ]
2026-06-18T11:18:00.1391955Z         },
2026-06-18T11:18:00.1392041Z         "impl": {
2026-06-18T11:18:00.1392136Z           "complete": true,
2026-06-18T11:18:00.1392233Z           "evidence": [
2026-06-18T11:18:00.1392313Z             {
2026-06-18T11:18:00.1392547Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-18T11:18:00.1392647Z               "line": 39
2026-06-18T11:18:00.1392728Z             },
2026-06-18T11:18:00.1392818Z             {
2026-06-18T11:18:00.1392938Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-18T11:18:00.1393027Z               "line": 79
2026-06-18T11:18:00.1393108Z             },
2026-06-18T11:18:00.1393201Z             {
2026-06-18T11:18:00.1393318Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-18T11:18:00.1393400Z               "line": 162
2026-06-18T11:18:00.1393487Z             }
2026-06-18T11:18:00.1393572Z           ]
2026-06-18T11:18:00.1393656Z         },
2026-06-18T11:18:00.1393741Z         "int": {
2026-06-18T11:18:00.1393842Z           "complete": false,
2026-06-18T11:18:00.1393943Z           "evidence": []
2026-06-18T11:18:00.1394028Z         },
2026-06-18T11:18:00.1394123Z         "unit": {
2026-06-18T11:18:00.1394215Z           "complete": true,
2026-06-18T11:18:00.1394319Z           "evidence": [
2026-06-18T11:18:00.1394414Z             {
2026-06-18T11:18:00.1394534Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-18T11:18:00.1394625Z               "line": 206
2026-06-18T11:18:00.1394700Z             },
2026-06-18T11:18:00.1394782Z             {
2026-06-18T11:18:00.1394905Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-18T11:18:00.1395000Z               "line": 222
2026-06-18T11:18:00.1395077Z             },
2026-06-18T11:18:00.1395159Z             {
2026-06-18T11:18:00.1395283Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-18T11:18:00.1395368Z               "line": 238
2026-06-18T11:18:00.1395455Z             },
2026-06-18T11:18:00.1395540Z             {
2026-06-18T11:18:00.1395653Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-18T11:18:00.1395741Z               "line": 251
2026-06-18T11:18:00.1395822Z             },
2026-06-18T11:18:00.1395911Z             {
2026-06-18T11:18:00.1396029Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-18T11:18:00.1396125Z               "line": 258
2026-06-18T11:18:00.1396214Z             }
2026-06-18T11:18:00.1396299Z           ]
2026-06-18T11:18:00.1396385Z         }
2026-06-18T11:18:00.1396471Z       }
2026-06-18T11:18:00.1396566Z     },
2026-06-18T11:18:00.1396652Z     {
2026-06-18T11:18:00.1396753Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-18T11:18:00.1396942Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-18T11:18:00.1397039Z       "requiredStages": [
2026-06-18T11:18:00.1397124Z         "impl",
2026-06-18T11:18:00.1397210Z         "unit"
2026-06-18T11:18:00.1397291Z       ],
2026-06-18T11:18:00.1397373Z       "stages": {
2026-06-18T11:18:00.1397458Z         "doc": {
2026-06-18T11:18:00.1397553Z           "complete": false,
2026-06-18T11:18:00.1397649Z           "evidence": []
2026-06-18T11:18:00.1397721Z         },
2026-06-18T11:18:00.1397816Z         "impl": {
2026-06-18T11:18:00.1397920Z           "complete": true,
2026-06-18T11:18:00.1398007Z           "evidence": [
2026-06-18T11:18:00.1398092Z             {
2026-06-18T11:18:00.1398211Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T11:18:00.1398303Z               "line": 18
2026-06-18T11:18:00.1398384Z             },
2026-06-18T11:18:00.1398550Z             {
2026-06-18T11:18:00.1398670Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T11:18:00.1398768Z               "line": 35
2026-06-18T11:18:00.1398854Z             },
2026-06-18T11:18:00.1398935Z             {
2026-06-18T11:18:00.1399118Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T11:18:00.1399213Z               "line": 72
2026-06-18T11:18:00.1399300Z             }
2026-06-18T11:18:00.1399396Z           ]
2026-06-18T11:18:00.1399476Z         },
2026-06-18T11:18:00.1399562Z         "int": {
2026-06-18T11:18:00.1399653Z           "complete": false,
2026-06-18T11:18:00.1399748Z           "evidence": []
2026-06-18T11:18:00.1399940Z         },
2026-06-18T11:18:00.1400035Z         "unit": {
2026-06-18T11:18:00.1400139Z           "complete": true,
2026-06-18T11:18:00.1400220Z           "evidence": [
2026-06-18T11:18:00.1400315Z             {
2026-06-18T11:18:00.1400425Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T11:18:00.1400516Z               "line": 239
2026-06-18T11:18:00.1400603Z             },
2026-06-18T11:18:00.1400687Z             {
2026-06-18T11:18:00.1400797Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T11:18:00.1400894Z               "line": 256
2026-06-18T11:18:00.1400983Z             },
2026-06-18T11:18:00.1401064Z             {
2026-06-18T11:18:00.1401179Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T11:18:00.1401265Z               "line": 265
2026-06-18T11:18:00.1401364Z             }
2026-06-18T11:18:00.1401444Z           ]
2026-06-18T11:18:00.1401530Z         }
2026-06-18T11:18:00.1401624Z       }
2026-06-18T11:18:00.1401714Z     },
2026-06-18T11:18:00.1401795Z     {
2026-06-18T11:18:00.1401896Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-18T11:18:00.1402038Z       "title": "Hostable endpoint-types capability declaration",
2026-06-18T11:18:00.1402138Z       "requiredStages": [
2026-06-18T11:18:00.1402225Z         "impl",
2026-06-18T11:18:00.1402319Z         "unit"
2026-06-18T11:18:00.1402395Z       ],
2026-06-18T11:18:00.1402488Z       "stages": {
2026-06-18T11:18:00.1402568Z         "doc": {
2026-06-18T11:18:00.1402672Z           "complete": false,
2026-06-18T11:18:00.1402768Z           "evidence": []
2026-06-18T11:18:00.1402844Z         },
2026-06-18T11:18:00.1402930Z         "impl": {
2026-06-18T11:18:00.1403025Z           "complete": true,
2026-06-18T11:18:00.1403112Z           "evidence": [
2026-06-18T11:18:00.1403197Z             {
2026-06-18T11:18:00.1403321Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.1403422Z               "line": 594
2026-06-18T11:18:00.1403502Z             }
2026-06-18T11:18:00.1403602Z           ]
2026-06-18T11:18:00.1403688Z         },
2026-06-18T11:18:00.1403780Z         "int": {
2026-06-18T11:18:00.1403878Z           "complete": false,
2026-06-18T11:18:00.1403965Z           "evidence": []
2026-06-18T11:18:00.1404056Z         },
2026-06-18T11:18:00.1404146Z         "unit": {
2026-06-18T11:18:00.1404245Z           "complete": true,
2026-06-18T11:18:00.1404340Z           "evidence": [
2026-06-18T11:18:00.1404421Z             {
2026-06-18T11:18:00.1404541Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.1404635Z               "line": 963
2026-06-18T11:18:00.1404722Z             }
2026-06-18T11:18:00.1404808Z           ]
2026-06-18T11:18:00.1404893Z         }
2026-06-18T11:18:00.1404974Z       }
2026-06-18T11:18:00.1405056Z     },
2026-06-18T11:18:00.1405142Z     {
2026-06-18T11:18:00.1405246Z       "id": "REQ-SEAM-HISTORY",
2026-06-18T11:18:00.1405433Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-18T11:18:00.1405537Z       "requiredStages": [
2026-06-18T11:18:00.1405618Z         "impl",
2026-06-18T11:18:00.1405700Z         "unit",
2026-06-18T11:18:00.1405790Z         "int"
2026-06-18T11:18:00.1405876Z       ],
2026-06-18T11:18:00.1405962Z       "stages": {
2026-06-18T11:18:00.1406057Z         "doc": {
2026-06-18T11:18:00.1406147Z           "complete": false,
2026-06-18T11:18:00.1406354Z           "evidence": []
2026-06-18T11:18:00.1406443Z         },
2026-06-18T11:18:00.1406533Z         "impl": {
2026-06-18T11:18:00.1406628Z           "complete": true,
2026-06-18T11:18:00.1406713Z           "evidence": [
2026-06-18T11:18:00.1406807Z             {
2026-06-18T11:18:00.1406926Z               "path": "crates/spt-live/src/echo.rs",
2026-06-18T11:18:00.1407022Z               "line": 24
2026-06-18T11:18:00.1407098Z             },
2026-06-18T11:18:00.1407193Z             {
2026-06-18T11:18:00.1407313Z               "path": "crates/spt-live/src/history.rs",
2026-06-18T11:18:00.1407403Z               "line": 22
2026-06-18T11:18:00.1407570Z             }
2026-06-18T11:18:00.1407657Z           ]
2026-06-18T11:18:00.1407746Z         },
2026-06-18T11:18:00.1407827Z         "int": {
2026-06-18T11:18:00.1407928Z           "complete": true,
2026-06-18T11:18:00.1408009Z           "evidence": [
2026-06-18T11:18:00.1408104Z             {
2026-06-18T11:18:00.1408219Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-18T11:18:00.1408309Z               "line": 260
2026-06-18T11:18:00.1408395Z             }
2026-06-18T11:18:00.1408480Z           ]
2026-06-18T11:18:00.1408562Z         },
2026-06-18T11:18:00.1408648Z         "unit": {
2026-06-18T11:18:00.1408747Z           "complete": true,
2026-06-18T11:18:00.1408849Z           "evidence": [
2026-06-18T11:18:00.1408930Z             {
2026-06-18T11:18:00.1409130Z               "path": "crates/spt-live/src/echo.rs",
2026-06-18T11:18:00.1409206Z               "line": 171
2026-06-18T11:18:00.1409301Z             },
2026-06-18T11:18:00.1409381Z             {
2026-06-18T11:18:00.1409505Z               "path": "crates/spt-live/src/echo.rs",
2026-06-18T11:18:00.1409599Z               "line": 200
2026-06-18T11:18:00.1409683Z             },
2026-06-18T11:18:00.1409778Z             {
2026-06-18T11:18:00.1409889Z               "path": "crates/spt-live/src/echo.rs",
2026-06-18T11:18:00.1409993Z               "line": 220
2026-06-18T11:18:00.1410084Z             },
2026-06-18T11:18:00.1410176Z             {
2026-06-18T11:18:00.1410299Z               "path": "crates/spt-live/src/history.rs",
2026-06-18T11:18:00.1410384Z               "line": 199
2026-06-18T11:18:00.1410466Z             },
2026-06-18T11:18:00.1410552Z             {
2026-06-18T11:18:00.1410665Z               "path": "crates/spt-live/src/history.rs",
2026-06-18T11:18:00.1410761Z               "line": 219
2026-06-18T11:18:00.1410843Z             },
2026-06-18T11:18:00.1410928Z             {
2026-06-18T11:18:00.1411033Z               "path": "crates/spt-live/src/history.rs",
2026-06-18T11:18:00.1411129Z               "line": 244
2026-06-18T11:18:00.1411219Z             },
2026-06-18T11:18:00.1411304Z             {
2026-06-18T11:18:00.1411411Z               "path": "crates/spt-live/src/history.rs",
2026-06-18T11:18:00.1411510Z               "line": 276
2026-06-18T11:18:00.1411585Z             },
2026-06-18T11:18:00.1411667Z             {
2026-06-18T11:18:00.1411793Z               "path": "crates/spt-live/src/history.rs",
2026-06-18T11:18:00.1411876Z               "line": 297
2026-06-18T11:18:00.1411967Z             },
2026-06-18T11:18:00.1412052Z             {
2026-06-18T11:18:00.1412166Z               "path": "crates/spt-live/src/history.rs",
2026-06-18T11:18:00.1412269Z               "line": 324
2026-06-18T11:18:00.1412350Z             }
2026-06-18T11:18:00.1412432Z           ]
2026-06-18T11:18:00.1412513Z         }
2026-06-18T11:18:00.1412598Z       }
2026-06-18T11:18:00.1412684Z     },
2026-06-18T11:18:00.1412770Z     {
2026-06-18T11:18:00.1412875Z       "id": "REQ-SEAM-INJECT",
2026-06-18T11:18:00.1413028Z       "title": "inject-input methods configurable per activity-state",
2026-06-18T11:18:00.1413142Z       "requiredStages": [
2026-06-18T11:18:00.1413227Z         "impl",
2026-06-18T11:18:00.1413314Z         "unit"
2026-06-18T11:18:00.1413405Z       ],
2026-06-18T11:18:00.1413485Z       "stages": {
2026-06-18T11:18:00.1413581Z         "doc": {
2026-06-18T11:18:00.1413771Z           "complete": false,
2026-06-18T11:18:00.1413862Z           "evidence": []
2026-06-18T11:18:00.1413943Z         },
2026-06-18T11:18:00.1414030Z         "impl": {
2026-06-18T11:18:00.1414124Z           "complete": true,
2026-06-18T11:18:00.1414210Z           "evidence": [
2026-06-18T11:18:00.1414302Z             {
2026-06-18T11:18:00.1414405Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T11:18:00.1414496Z               "line": 19
2026-06-18T11:18:00.1414583Z             },
2026-06-18T11:18:00.1414674Z             {
2026-06-18T11:18:00.1414791Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T11:18:00.1414881Z               "line": 111
2026-06-18T11:18:00.1415077Z             }
2026-06-18T11:18:00.1415162Z           ]
2026-06-18T11:18:00.1415253Z         },
2026-06-18T11:18:00.1415335Z         "int": {
2026-06-18T11:18:00.1415439Z           "complete": false,
2026-06-18T11:18:00.1415534Z           "evidence": []
2026-06-18T11:18:00.1415616Z         },
2026-06-18T11:18:00.1415716Z         "unit": {
2026-06-18T11:18:00.1415811Z           "complete": true,
2026-06-18T11:18:00.1415902Z           "evidence": [
2026-06-18T11:18:00.1415983Z             {
2026-06-18T11:18:00.1416106Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T11:18:00.1416202Z               "line": 345
2026-06-18T11:18:00.1416293Z             },
2026-06-18T11:18:00.1416388Z             {
2026-06-18T11:18:00.1416503Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T11:18:00.1416599Z               "line": 365
2026-06-18T11:18:00.1416688Z             }
2026-06-18T11:18:00.1416779Z           ]
2026-06-18T11:18:00.1416856Z         }
2026-06-18T11:18:00.1416942Z       }
2026-06-18T11:18:00.1417027Z     },
2026-06-18T11:18:00.1419974Z     {
2026-06-18T11:18:00.1420117Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-18T11:18:00.1420267Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-18T11:18:00.1420368Z       "requiredStages": [
2026-06-18T11:18:00.1420459Z         "impl",
2026-06-18T11:18:00.1420544Z         "unit"
2026-06-18T11:18:00.1420634Z       ],
2026-06-18T11:18:00.1420707Z       "stages": {
2026-06-18T11:18:00.1420797Z         "doc": {
2026-06-18T11:18:00.1420897Z           "complete": false,
2026-06-18T11:18:00.1420982Z           "evidence": []
2026-06-18T11:18:00.1421065Z         },
2026-06-18T11:18:00.1421145Z         "impl": {
2026-06-18T11:18:00.1421244Z           "complete": true,
2026-06-18T11:18:00.1421331Z           "evidence": [
2026-06-18T11:18:00.1421422Z             {
2026-06-18T11:18:00.1421545Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1421631Z               "line": 18
2026-06-18T11:18:00.1421732Z             },
2026-06-18T11:18:00.1421812Z             {
2026-06-18T11:18:00.1421927Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1422014Z               "line": 407
2026-06-18T11:18:00.1422103Z             }
2026-06-18T11:18:00.1422184Z           ]
2026-06-18T11:18:00.1422276Z         },
2026-06-18T11:18:00.1422367Z         "int": {
2026-06-18T11:18:00.1422465Z           "complete": false,
2026-06-18T11:18:00.1422555Z           "evidence": []
2026-06-18T11:18:00.1422636Z         },
2026-06-18T11:18:00.1422717Z         "unit": {
2026-06-18T11:18:00.1422805Z           "complete": true,
2026-06-18T11:18:00.1422900Z           "evidence": [
2026-06-18T11:18:00.1422977Z             {
2026-06-18T11:18:00.1423106Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1423192Z               "line": 764
2026-06-18T11:18:00.1423278Z             },
2026-06-18T11:18:00.1423359Z             {
2026-06-18T11:18:00.1423468Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1423569Z               "line": 774
2026-06-18T11:18:00.1423655Z             }
2026-06-18T11:18:00.1423740Z           ]
2026-06-18T11:18:00.1423826Z         }
2026-06-18T11:18:00.1423908Z       }
2026-06-18T11:18:00.1423988Z     },
2026-06-18T11:18:00.1424074Z     {
2026-06-18T11:18:00.1424312Z       "id": "REQ-SEAM-PSYCHE",
2026-06-18T11:18:00.1424455Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-18T11:18:00.1424547Z       "requiredStages": [
2026-06-18T11:18:00.1424641Z         "impl",
2026-06-18T11:18:00.1424713Z         "unit",
2026-06-18T11:18:00.1424803Z         "int"
2026-06-18T11:18:00.1424886Z       ],
2026-06-18T11:18:00.1424979Z       "stages": {
2026-06-18T11:18:00.1425061Z         "doc": {
2026-06-18T11:18:00.1425162Z           "complete": false,
2026-06-18T11:18:00.1425257Z           "evidence": []
2026-06-18T11:18:00.1425336Z         },
2026-06-18T11:18:00.1425431Z         "impl": {
2026-06-18T11:18:00.1425614Z           "complete": true,
2026-06-18T11:18:00.1425699Z           "evidence": [
2026-06-18T11:18:00.1425784Z             {
2026-06-18T11:18:00.1425905Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-18T11:18:00.1425990Z               "line": 19
2026-06-18T11:18:00.1426075Z             },
2026-06-18T11:18:00.1426158Z             {
2026-06-18T11:18:00.1426276Z               "path": "crates/spt/src/api/live.rs",
2026-06-18T11:18:00.1426366Z               "line": 12
2026-06-18T11:18:00.1426443Z             },
2026-06-18T11:18:00.1426533Z             {
2026-06-18T11:18:00.1426657Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1426748Z               "line": 277
2026-06-18T11:18:00.1426839Z             }
2026-06-18T11:18:00.1426929Z           ]
2026-06-18T11:18:00.1427015Z         },
2026-06-18T11:18:00.1427102Z         "int": {
2026-06-18T11:18:00.1427201Z           "complete": true,
2026-06-18T11:18:00.1427296Z           "evidence": [
2026-06-18T11:18:00.1427368Z             {
2026-06-18T11:18:00.1427502Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-18T11:18:00.1427587Z               "line": 259
2026-06-18T11:18:00.1427677Z             }
2026-06-18T11:18:00.1427758Z           ]
2026-06-18T11:18:00.1427843Z         },
2026-06-18T11:18:00.1427932Z         "unit": {
2026-06-18T11:18:00.1428022Z           "complete": true,
2026-06-18T11:18:00.1428123Z           "evidence": [
2026-06-18T11:18:00.1428204Z             {
2026-06-18T11:18:00.1428327Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-18T11:18:00.1428414Z               "line": 195
2026-06-18T11:18:00.1428504Z             },
2026-06-18T11:18:00.1428585Z             {
2026-06-18T11:18:00.1428705Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-18T11:18:00.1428795Z               "line": 202
2026-06-18T11:18:00.1428880Z             },
2026-06-18T11:18:00.1429035Z             {
2026-06-18T11:18:00.1429153Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-18T11:18:00.1429252Z               "line": 225
2026-06-18T11:18:00.1429339Z             },
2026-06-18T11:18:00.1429420Z             {
2026-06-18T11:18:00.1429539Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-18T11:18:00.1429625Z               "line": 106
2026-06-18T11:18:00.1429706Z             },
2026-06-18T11:18:00.1429796Z             {
2026-06-18T11:18:00.1429901Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-18T11:18:00.1429998Z               "line": 137
2026-06-18T11:18:00.1430073Z             },
2026-06-18T11:18:00.1430158Z             {
2026-06-18T11:18:00.1430260Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-18T11:18:00.1430355Z               "line": 161
2026-06-18T11:18:00.1430440Z             }
2026-06-18T11:18:00.1430520Z           ]
2026-06-18T11:18:00.1430610Z         }
2026-06-18T11:18:00.1430691Z       }
2026-06-18T11:18:00.1430780Z     },
2026-06-18T11:18:00.1430865Z     {
2026-06-18T11:18:00.1430971Z       "id": "REQ-SEAM-RESUME",
2026-06-18T11:18:00.1431165Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-18T11:18:00.1431262Z       "requiredStages": [
2026-06-18T11:18:00.1431334Z         "impl",
2026-06-18T11:18:00.1431419Z         "unit"
2026-06-18T11:18:00.1431499Z       ],
2026-06-18T11:18:00.1431577Z       "stages": {
2026-06-18T11:18:00.1431772Z         "doc": {
2026-06-18T11:18:00.1431862Z           "complete": false,
2026-06-18T11:18:00.1431949Z           "evidence": []
2026-06-18T11:18:00.1432029Z         },
2026-06-18T11:18:00.1432115Z         "impl": {
2026-06-18T11:18:00.1432211Z           "complete": true,
2026-06-18T11:18:00.1432302Z           "evidence": [
2026-06-18T11:18:00.1432381Z             {
2026-06-18T11:18:00.1432497Z               "path": "crates/spt-live/src/resume.rs",
2026-06-18T11:18:00.1432578Z               "line": 19
2026-06-18T11:18:00.1432664Z             }
2026-06-18T11:18:00.1432749Z           ]
2026-06-18T11:18:00.1432826Z         },
2026-06-18T11:18:00.1432903Z         "int": {
2026-06-18T11:18:00.1433101Z           "complete": false,
2026-06-18T11:18:00.1433201Z           "evidence": []
2026-06-18T11:18:00.1433282Z         },
2026-06-18T11:18:00.1433375Z         "unit": {
2026-06-18T11:18:00.1433460Z           "complete": true,
2026-06-18T11:18:00.1433547Z           "evidence": [
2026-06-18T11:18:00.1433634Z             {
2026-06-18T11:18:00.1433752Z               "path": "crates/spt-live/src/resume.rs",
2026-06-18T11:18:00.1433848Z               "line": 201
2026-06-18T11:18:00.1433933Z             },
2026-06-18T11:18:00.1434018Z             {
2026-06-18T11:18:00.1434124Z               "path": "crates/spt-live/src/resume.rs",
2026-06-18T11:18:00.1434215Z               "line": 223
2026-06-18T11:18:00.1434291Z             },
2026-06-18T11:18:00.1434381Z             {
2026-06-18T11:18:00.1434497Z               "path": "crates/spt-live/src/resume.rs",
2026-06-18T11:18:00.1434576Z               "line": 244
2026-06-18T11:18:00.1434667Z             }
2026-06-18T11:18:00.1434748Z           ]
2026-06-18T11:18:00.1434845Z         }
2026-06-18T11:18:00.1434920Z       }
2026-06-18T11:18:00.1435006Z     },
2026-06-18T11:18:00.1435088Z     {
2026-06-18T11:18:00.1435188Z       "id": "REQ-SEAM-SPAWN",
2026-06-18T11:18:00.1435292Z       "title": "spawn-session seam",
2026-06-18T11:18:00.1435388Z       "requiredStages": [
2026-06-18T11:18:00.1435484Z         "impl",
2026-06-18T11:18:00.1435563Z         "unit"
2026-06-18T11:18:00.1435654Z       ],
2026-06-18T11:18:00.1435737Z       "stages": {
2026-06-18T11:18:00.1435827Z         "doc": {
2026-06-18T11:18:00.1435925Z           "complete": false,
2026-06-18T11:18:00.1436015Z           "evidence": []
2026-06-18T11:18:00.1436102Z         },
2026-06-18T11:18:00.1436188Z         "impl": {
2026-06-18T11:18:00.1436287Z           "complete": true,
2026-06-18T11:18:00.1436378Z           "evidence": [
2026-06-18T11:18:00.1436455Z             {
2026-06-18T11:18:00.1436568Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.1436669Z               "line": 20
2026-06-18T11:18:00.1436751Z             }
2026-06-18T11:18:00.1436832Z           ]
2026-06-18T11:18:00.1436926Z         },
2026-06-18T11:18:00.1437008Z         "int": {
2026-06-18T11:18:00.1437103Z           "complete": false,
2026-06-18T11:18:00.1437194Z           "evidence": []
2026-06-18T11:18:00.1437265Z         },
2026-06-18T11:18:00.1437366Z         "unit": {
2026-06-18T11:18:00.1437456Z           "complete": true,
2026-06-18T11:18:00.1437551Z           "evidence": [
2026-06-18T11:18:00.1437647Z             {
2026-06-18T11:18:00.1437761Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.1437851Z               "line": 608
2026-06-18T11:18:00.1437928Z             },
2026-06-18T11:18:00.1438015Z             {
2026-06-18T11:18:00.1438132Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.1438227Z               "line": 615
2026-06-18T11:18:00.1438308Z             },
2026-06-18T11:18:00.1438393Z             {
2026-06-18T11:18:00.1438520Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.1438611Z               "line": 721
2026-06-18T11:18:00.1438693Z             },
2026-06-18T11:18:00.1438773Z             {
2026-06-18T11:18:00.1438892Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.1439065Z               "line": 727
2026-06-18T11:18:00.1439241Z             },
2026-06-18T11:18:00.1439327Z             {
2026-06-18T11:18:00.1439450Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.1439546Z               "line": 752
2026-06-18T11:18:00.1439627Z             },
2026-06-18T11:18:00.1439718Z             {
2026-06-18T11:18:00.1439836Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T11:18:00.1439914Z               "line": 789
2026-06-18T11:18:00.1440003Z             }
2026-06-18T11:18:00.1440089Z           ]
2026-06-18T11:18:00.1440165Z         }
2026-06-18T11:18:00.1440253Z       }
2026-06-18T11:18:00.1440332Z     },
2026-06-18T11:18:00.1440524Z     {
2026-06-18T11:18:00.1440624Z       "id": "REQ-SEAM-UPDATE",
2026-06-18T11:18:00.1440795Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-18T11:18:00.1440892Z       "requiredStages": [
2026-06-18T11:18:00.1440981Z         "impl",
2026-06-18T11:18:00.1441061Z         "unit"
2026-06-18T11:18:00.1441151Z       ],
2026-06-18T11:18:00.1441232Z       "stages": {
2026-06-18T11:18:00.1441317Z         "doc": {
2026-06-18T11:18:00.1441416Z           "complete": false,
2026-06-18T11:18:00.1441507Z           "evidence": []
2026-06-18T11:18:00.1441594Z         },
2026-06-18T11:18:00.1441679Z         "impl": {
2026-06-18T11:18:00.1441774Z           "complete": true,
2026-06-18T11:18:00.1441870Z           "evidence": [
2026-06-18T11:18:00.1441951Z             {
2026-06-18T11:18:00.1442083Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T11:18:00.1442166Z               "line": 28
2026-06-18T11:18:00.1442251Z             },
2026-06-18T11:18:00.1442341Z             {
2026-06-18T11:18:00.1442471Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T11:18:00.1442566Z               "line": 88
2026-06-18T11:18:00.1442647Z             }
2026-06-18T11:18:00.1442737Z           ]
2026-06-18T11:18:00.1442819Z         },
2026-06-18T11:18:00.1442909Z         "int": {
2026-06-18T11:18:00.1443018Z           "complete": false,
2026-06-18T11:18:00.1443110Z           "evidence": []
2026-06-18T11:18:00.1443191Z         },
2026-06-18T11:18:00.1443275Z         "unit": {
2026-06-18T11:18:00.1443372Z           "complete": true,
2026-06-18T11:18:00.1443458Z           "evidence": [
2026-06-18T11:18:00.1443539Z             {
2026-06-18T11:18:00.1443670Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T11:18:00.1443766Z               "line": 326
2026-06-18T11:18:00.1443856Z             },
2026-06-18T11:18:00.1443940Z             {
2026-06-18T11:18:00.1444069Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T11:18:00.1444170Z               "line": 337
2026-06-18T11:18:00.1444250Z             }
2026-06-18T11:18:00.1444331Z           ]
2026-06-18T11:18:00.1444418Z         }
2026-06-18T11:18:00.1444498Z       }
2026-06-18T11:18:00.1444583Z     },
2026-06-18T11:18:00.1444664Z     {
2026-06-18T11:18:00.1444747Z       "id": "REQ-SEC-1",
2026-06-18T11:18:00.1445137Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-18T11:18:00.1445236Z       "requiredStages": [
2026-06-18T11:18:00.1445328Z         "impl",
2026-06-18T11:18:00.1445410Z         "unit"
2026-06-18T11:18:00.1445495Z       ],
2026-06-18T11:18:00.1445575Z       "stages": {
2026-06-18T11:18:00.1445658Z         "doc": {
2026-06-18T11:18:00.1445753Z           "complete": false,
2026-06-18T11:18:00.1445838Z           "evidence": []
2026-06-18T11:18:00.1445929Z         },
2026-06-18T11:18:00.1446016Z         "impl": {
2026-06-18T11:18:00.1446114Z           "complete": true,
2026-06-18T11:18:00.1446205Z           "evidence": [
2026-06-18T11:18:00.1446292Z             {
2026-06-18T11:18:00.1446420Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-18T11:18:00.1446509Z               "line": 86
2026-06-18T11:18:00.1446590Z             },
2026-06-18T11:18:00.1446776Z             {
2026-06-18T11:18:00.1446895Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-18T11:18:00.1446992Z               "line": 116
2026-06-18T11:18:00.1447073Z             },
2026-06-18T11:18:00.1447148Z             {
2026-06-18T11:18:00.1447263Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-18T11:18:00.1447353Z               "line": 130
2026-06-18T11:18:00.1447443Z             },
2026-06-18T11:18:00.1447525Z             {
2026-06-18T11:18:00.1447645Z               "path": "crates/spt-store/src/access.rs",
2026-06-18T11:18:00.1447720Z               "line": 109
2026-06-18T11:18:00.1447815Z             },
2026-06-18T11:18:00.1447960Z             {
2026-06-18T11:18:00.1448064Z               "path": "crates/spt-store/src/access.rs",
2026-06-18T11:18:00.1448149Z               "line": 130
2026-06-18T11:18:00.1448236Z             },
2026-06-18T11:18:00.1448317Z             {
2026-06-18T11:18:00.1448421Z               "path": "crates/spt-store/src/access.rs",
2026-06-18T11:18:00.1448517Z               "line": 143
2026-06-18T11:18:00.1448599Z             },
2026-06-18T11:18:00.1448683Z             {
2026-06-18T11:18:00.1448792Z               "path": "crates/spt-store/src/access.rs",
2026-06-18T11:18:00.1448888Z               "line": 209
2026-06-18T11:18:00.1449038Z             },
2026-06-18T11:18:00.1449118Z             {
2026-06-18T11:18:00.1449224Z               "path": "crates/spt-store/src/access.rs",
2026-06-18T11:18:00.1449324Z               "line": 235
2026-06-18T11:18:00.1449410Z             },
2026-06-18T11:18:00.1449491Z             {
2026-06-18T11:18:00.1449596Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1449700Z               "line": 5134
2026-06-18T11:18:00.1449781Z             }
2026-06-18T11:18:00.1449864Z           ]
2026-06-18T11:18:00.1449959Z         },
2026-06-18T11:18:00.1450039Z         "int": {
2026-06-18T11:18:00.1450140Z           "complete": false,
2026-06-18T11:18:00.1450230Z           "evidence": []
2026-06-18T11:18:00.1450315Z         },
2026-06-18T11:18:00.1450392Z         "unit": {
2026-06-18T11:18:00.1450493Z           "complete": true,
2026-06-18T11:18:00.1450578Z           "evidence": [
2026-06-18T11:18:00.1450654Z             {
2026-06-18T11:18:00.1450779Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-18T11:18:00.1450869Z               "line": 142
2026-06-18T11:18:00.1450950Z             },
2026-06-18T11:18:00.1451031Z             {
2026-06-18T11:18:00.1451147Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-18T11:18:00.1451240Z               "line": 194
2026-06-18T11:18:00.1451322Z             },
2026-06-18T11:18:00.1451408Z             {
2026-06-18T11:18:00.1451527Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-18T11:18:00.1451621Z               "line": 235
2026-06-18T11:18:00.1451702Z             },
2026-06-18T11:18:00.1451788Z             {
2026-06-18T11:18:00.1451915Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-18T11:18:00.1452014Z               "line": 140
2026-06-18T11:18:00.1452110Z             },
2026-06-18T11:18:00.1452192Z             {
2026-06-18T11:18:00.1452309Z               "path": "crates/spt-store/src/access.rs",
2026-06-18T11:18:00.1452397Z               "line": 247
2026-06-18T11:18:00.1452482Z             },
2026-06-18T11:18:00.1452567Z             {
2026-06-18T11:18:00.1452673Z               "path": "crates/spt-store/src/access.rs",
2026-06-18T11:18:00.1452754Z               "line": 277
2026-06-18T11:18:00.1452840Z             },
2026-06-18T11:18:00.1452920Z             {
2026-06-18T11:18:00.1453031Z               "path": "crates/spt-store/src/access.rs",
2026-06-18T11:18:00.1453116Z               "line": 310
2026-06-18T11:18:00.1453202Z             },
2026-06-18T11:18:00.1453278Z             {
2026-06-18T11:18:00.1453389Z               "path": "crates/spt-store/src/access.rs",
2026-06-18T11:18:00.1453474Z               "line": 329
2026-06-18T11:18:00.1453560Z             },
2026-06-18T11:18:00.1453641Z             {
2026-06-18T11:18:00.1453884Z               "path": "crates/spt-store/src/access.rs",
2026-06-18T11:18:00.1453980Z               "line": 362
2026-06-18T11:18:00.1454061Z             },
2026-06-18T11:18:00.1454146Z             {
2026-06-18T11:18:00.1454264Z               "path": "crates/spt-store/src/access.rs",
2026-06-18T11:18:00.1454354Z               "line": 386
2026-06-18T11:18:00.1454444Z             },
2026-06-18T11:18:00.1454523Z             {
2026-06-18T11:18:00.1454629Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1454725Z               "line": 8066
2026-06-18T11:18:00.1454801Z             }
2026-06-18T11:18:00.1454881Z           ]
2026-06-18T11:18:00.1455063Z         }
2026-06-18T11:18:00.1455144Z       }
2026-06-18T11:18:00.1455234Z     },
2026-06-18T11:18:00.1455316Z     {
2026-06-18T11:18:00.1455421Z       "id": "REQ-SEND-SPT-HOSTED",
2026-06-18T11:18:00.1459097Z       "title": "An inbound `spt send` is DELIVERED to an spt-hosted endpoint (brought up via `spt endpoint run` → `api bind`, broker holds its PTY, NO `api listen` relay). Today cmd_bind→establish_perch (api/startup.rs ~441) writes info.json + ready marker + controllable=Some(true) but registers NO message-listener / NO address, so deliver.rs resolve_address→None→spool (deliver.rs:132-140) and the message NEVER reaches the live PTY — the endpoint reads 'online' (ready marker) yet `spt send` silently SPOOLS ('online but not deliverable' lie). Per CONTEXT:187-188 the daemon owns the PTY and delivers, manifest-configurable per activity-state (direct PTY injection / relay / HTTP). FIX: route an inbound send for an spt-hosted target through the daemon → broker InputReq → session.write_input PTY-inject (broker.rs dispatch_input/write_input ~988-1022), the same path the brain uses; the live-delivery handshake must report Sent (not Queued) and stop the spool-only fallback for a broker-hosted, PTY-resident endpoint. Detection is local: controllable==Some(true) + spt-hosted state + resolve_address==None. = the spt-core HALF of the wall-b finding (perri owns the adapter half: bind-hook fired-zero-perch + the missing endpoint-run int test). (post-v0.10.0)",
2026-06-18T11:18:00.1459238Z       "requiredStages": [
2026-06-18T11:18:00.1459333Z         "impl",
2026-06-18T11:18:00.1459419Z         "unit",
2026-06-18T11:18:00.1459509Z         "int"
2026-06-18T11:18:00.1459598Z       ],
2026-06-18T11:18:00.1459683Z       "stages": {
2026-06-18T11:18:00.1459770Z         "doc": {
2026-06-18T11:18:00.1459875Z           "complete": false,
2026-06-18T11:18:00.1459979Z           "evidence": []
2026-06-18T11:18:00.1460060Z         },
2026-06-18T11:18:00.1460156Z         "impl": {
2026-06-18T11:18:00.1460246Z           "complete": true,
2026-06-18T11:18:00.1460346Z           "evidence": [
2026-06-18T11:18:00.1460429Z             {
2026-06-18T11:18:00.1460551Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T11:18:00.1460651Z               "line": 1018
2026-06-18T11:18:00.1460739Z             },
2026-06-18T11:18:00.1460828Z             {
2026-06-18T11:18:00.1460961Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.1461063Z               "line": 1061
2026-06-18T11:18:00.1461157Z             },
2026-06-18T11:18:00.1461238Z             {
2026-06-18T11:18:00.1461354Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1461448Z               "line": 2721
2026-06-18T11:18:00.1461529Z             }
2026-06-18T11:18:00.1461615Z           ]
2026-06-18T11:18:00.1461702Z         },
2026-06-18T11:18:00.1461786Z         "int": {
2026-06-18T11:18:00.1461892Z           "complete": true,
2026-06-18T11:18:00.1461978Z           "evidence": [
2026-06-18T11:18:00.1462059Z             {
2026-06-18T11:18:00.1462196Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-18T11:18:00.1462286Z               "line": 187
2026-06-18T11:18:00.1462376Z             },
2026-06-18T11:18:00.1462455Z             {
2026-06-18T11:18:00.1462579Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-18T11:18:00.1462680Z               "line": 503
2026-06-18T11:18:00.1462865Z             }
2026-06-18T11:18:00.1462952Z           ]
2026-06-18T11:18:00.1463038Z         },
2026-06-18T11:18:00.1463132Z         "unit": {
2026-06-18T11:18:00.1463223Z           "complete": true,
2026-06-18T11:18:00.1463319Z           "evidence": [
2026-06-18T11:18:00.1463400Z             {
2026-06-18T11:18:00.1463518Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-18T11:18:00.1463615Z               "line": 904
2026-06-18T11:18:00.1463700Z             },
2026-06-18T11:18:00.1463795Z             {
2026-06-18T11:18:00.1463896Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1463996Z               "line": 7325
2026-06-18T11:18:00.1464187Z             }
2026-06-18T11:18:00.1464273Z           ]
2026-06-18T11:18:00.1464367Z         }
2026-06-18T11:18:00.1464449Z       }
2026-06-18T11:18:00.1464540Z     },
2026-06-18T11:18:00.1464621Z     {
2026-06-18T11:18:00.1464720Z       "id": "REQ-SHELL-1",
2026-06-18T11:18:00.1465581Z       "title": "Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-launched binary + api bind local-link handshake, the three channels (command durable, text+file durable + progress-queryable, sensory REST-only never spooled + dropped-unless-owner-live), owner exclusivity (CONTEXT Shell model)",
2026-06-18T11:18:00.1465685Z       "requiredStages": [
2026-06-18T11:18:00.1465775Z         "impl",
2026-06-18T11:18:00.1465862Z         "unit",
2026-06-18T11:18:00.1465947Z         "int"
2026-06-18T11:18:00.1466033Z       ],
2026-06-18T11:18:00.1466114Z       "stages": {
2026-06-18T11:18:00.1466205Z         "doc": {
2026-06-18T11:18:00.1466310Z           "complete": false,
2026-06-18T11:18:00.1466410Z           "evidence": []
2026-06-18T11:18:00.1466496Z         },
2026-06-18T11:18:00.1466591Z         "impl": {
2026-06-18T11:18:00.1466686Z           "complete": true,
2026-06-18T11:18:00.1466778Z           "evidence": [
2026-06-18T11:18:00.1466868Z             {
2026-06-18T11:18:00.1466996Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T11:18:00.1467078Z               "line": 189
2026-06-18T11:18:00.1467164Z             },
2026-06-18T11:18:00.1467249Z             {
2026-06-18T11:18:00.1467374Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T11:18:00.1467460Z               "line": 268
2026-06-18T11:18:00.1467535Z             },
2026-06-18T11:18:00.1467620Z             {
2026-06-18T11:18:00.1467749Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-18T11:18:00.1467830Z               "line": 27
2026-06-18T11:18:00.1467916Z             },
2026-06-18T11:18:00.1468006Z             {
2026-06-18T11:18:00.1468131Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-18T11:18:00.1468217Z               "line": 52
2026-06-18T11:18:00.1468306Z             },
2026-06-18T11:18:00.1468393Z             {
2026-06-18T11:18:00.1468507Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-18T11:18:00.1468616Z               "line": 144
2026-06-18T11:18:00.1468703Z             },
2026-06-18T11:18:00.1468784Z             {
2026-06-18T11:18:00.1468902Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-18T11:18:00.1469061Z               "line": 176
2026-06-18T11:18:00.1469150Z             },
2026-06-18T11:18:00.1469245Z             {
2026-06-18T11:18:00.1469366Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.1469465Z               "line": 22
2026-06-18T11:18:00.1469546Z             },
2026-06-18T11:18:00.1469632Z             {
2026-06-18T11:18:00.1469747Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.1469855Z               "line": 65
2026-06-18T11:18:00.1469935Z             },
2026-06-18T11:18:00.1470017Z             {
2026-06-18T11:18:00.1470144Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.1470220Z               "line": 76
2026-06-18T11:18:00.1470315Z             },
2026-06-18T11:18:00.1470402Z             {
2026-06-18T11:18:00.1470621Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.1470735Z               "line": 151
2026-06-18T11:18:00.1470849Z             },
2026-06-18T11:18:00.1470945Z             {
2026-06-18T11:18:00.1471064Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.1471159Z               "line": 210
2026-06-18T11:18:00.1471241Z             },
2026-06-18T11:18:00.1471336Z             {
2026-06-18T11:18:00.1471459Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.1471550Z               "line": 258
2026-06-18T11:18:00.1471637Z             },
2026-06-18T11:18:00.1471836Z             {
2026-06-18T11:18:00.1471962Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.1472046Z               "line": 280
2026-06-18T11:18:00.1472141Z             },
2026-06-18T11:18:00.1472228Z             {
2026-06-18T11:18:00.1472351Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.1472437Z               "line": 293
2026-06-18T11:18:00.1472524Z             },
2026-06-18T11:18:00.1472610Z             {
2026-06-18T11:18:00.1472727Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.1472827Z               "line": 217
2026-06-18T11:18:00.1472913Z             },
2026-06-18T11:18:00.1472997Z             {
2026-06-18T11:18:00.1473120Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.1473202Z               "line": 233
2026-06-18T11:18:00.1473293Z             },
2026-06-18T11:18:00.1473373Z             {
2026-06-18T11:18:00.1473492Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T11:18:00.1473593Z               "line": 41
2026-06-18T11:18:00.1473678Z             },
2026-06-18T11:18:00.1473759Z             {
2026-06-18T11:18:00.1473893Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T11:18:00.1474016Z               "line": 222
2026-06-18T11:18:00.1474132Z             },
2026-06-18T11:18:00.1474236Z             {
2026-06-18T11:18:00.1474355Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T11:18:00.1474442Z               "line": 173
2026-06-18T11:18:00.1474537Z             },
2026-06-18T11:18:00.1474617Z             {
2026-06-18T11:18:00.1474722Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T11:18:00.1474805Z               "line": 354
2026-06-18T11:18:00.1474894Z             },
2026-06-18T11:18:00.1474980Z             {
2026-06-18T11:18:00.1475081Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T11:18:00.1475176Z               "line": 419
2026-06-18T11:18:00.1475261Z             },
2026-06-18T11:18:00.1475360Z             {
2026-06-18T11:18:00.1475479Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.1475578Z               "line": 329
2026-06-18T11:18:00.1475663Z             },
2026-06-18T11:18:00.1475749Z             {
2026-06-18T11:18:00.1475860Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1475959Z               "line": 6159
2026-06-18T11:18:00.1476054Z             },
2026-06-18T11:18:00.1476141Z             {
2026-06-18T11:18:00.1476245Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1476340Z               "line": 6309
2026-06-18T11:18:00.1476422Z             },
2026-06-18T11:18:00.1476512Z             {
2026-06-18T11:18:00.1476617Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1476714Z               "line": 6485
2026-06-18T11:18:00.1476808Z             }
2026-06-18T11:18:00.1476884Z           ]
2026-06-18T11:18:00.1476970Z         },
2026-06-18T11:18:00.1477057Z         "int": {
2026-06-18T11:18:00.1477142Z           "complete": true,
2026-06-18T11:18:00.1477242Z           "evidence": [
2026-06-18T11:18:00.1477323Z             {
2026-06-18T11:18:00.1477456Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T11:18:00.1477552Z               "line": 711
2026-06-18T11:18:00.1477629Z             },
2026-06-18T11:18:00.1477710Z             {
2026-06-18T11:18:00.1477924Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-18T11:18:00.1478015Z               "line": 8
2026-06-18T11:18:00.1478109Z             },
2026-06-18T11:18:00.1478194Z             {
2026-06-18T11:18:00.1478314Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-18T11:18:00.1478410Z               "line": 49
2026-06-18T11:18:00.1478486Z             },
2026-06-18T11:18:00.1478580Z             {
2026-06-18T11:18:00.1478701Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1478800Z               "line": 777
2026-06-18T11:18:00.1478876Z             },
2026-06-18T11:18:00.1479124Z             {
2026-06-18T11:18:00.1479253Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1479349Z               "line": 1212
2026-06-18T11:18:00.1479444Z             },
2026-06-18T11:18:00.1479524Z             {
2026-06-18T11:18:00.1479649Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-18T11:18:00.1479749Z               "line": 17
2026-06-18T11:18:00.1479834Z             },
2026-06-18T11:18:00.1479926Z             {
2026-06-18T11:18:00.1480030Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-18T11:18:00.1480130Z               "line": 14
2026-06-18T11:18:00.1480217Z             }
2026-06-18T11:18:00.1480298Z           ]
2026-06-18T11:18:00.1480392Z         },
2026-06-18T11:18:00.1480477Z         "unit": {
2026-06-18T11:18:00.1480568Z           "complete": true,
2026-06-18T11:18:00.1480658Z           "evidence": [
2026-06-18T11:18:00.1480742Z             {
2026-06-18T11:18:00.1480866Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-18T11:18:00.1480967Z               "line": 246
2026-06-18T11:18:00.1481047Z             },
2026-06-18T11:18:00.1481128Z             {
2026-06-18T11:18:00.1481253Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-18T11:18:00.1481343Z               "line": 279
2026-06-18T11:18:00.1481438Z             },
2026-06-18T11:18:00.1481525Z             {
2026-06-18T11:18:00.1481653Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-18T11:18:00.1481752Z               "line": 319
2026-06-18T11:18:00.1481825Z             },
2026-06-18T11:18:00.1481906Z             {
2026-06-18T11:18:00.1482024Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.1482125Z               "line": 598
2026-06-18T11:18:00.1482207Z             },
2026-06-18T11:18:00.1482297Z             {
2026-06-18T11:18:00.1482416Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.1482507Z               "line": 671
2026-06-18T11:18:00.1482592Z             },
2026-06-18T11:18:00.1482682Z             {
2026-06-18T11:18:00.1482803Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.1482888Z               "line": 815
2026-06-18T11:18:00.1482974Z             },
2026-06-18T11:18:00.1483060Z             {
2026-06-18T11:18:00.1483175Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.1483273Z               "line": 595
2026-06-18T11:18:00.1483358Z             },
2026-06-18T11:18:00.1483440Z             {
2026-06-18T11:18:00.1483567Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T11:18:00.1483666Z               "line": 399
2026-06-18T11:18:00.1483743Z             },
2026-06-18T11:18:00.1483834Z             {
2026-06-18T11:18:00.1483933Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1484023Z               "line": 8746
2026-06-18T11:18:00.1484111Z             },
2026-06-18T11:18:00.1484192Z             {
2026-06-18T11:18:00.1484295Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1484392Z               "line": 9070
2026-06-18T11:18:00.1484477Z             },
2026-06-18T11:18:00.1484572Z             {
2026-06-18T11:18:00.1484668Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1484764Z               "line": 9487
2026-06-18T11:18:00.1484859Z             }
2026-06-18T11:18:00.1485050Z           ]
2026-06-18T11:18:00.1485135Z         }
2026-06-18T11:18:00.1485216Z       }
2026-06-18T11:18:00.1485307Z     },
2026-06-18T11:18:00.1485389Z     {
2026-06-18T11:18:00.1485487Z       "id": "REQ-SHELL-2",
2026-06-18T11:18:00.1486925Z       "title": "Shell sleep/wake: link-break always closes the binary (pre-close instruction + termination timeout), ephemeral teardown vs persistent offline/relink, wake_command wake-watcher (offline-only, exit-opcode supervision, exponential backoff + give-up), state-keyed wake resolution (dormant/suspended/active-elsewhere; no-reachable refuses — spawn-anywhere branch deferred), spt shutdown owner cascade + api owner-shutdown gated by can_shutdown (CONTEXT Shell sleep/wake)",
2026-06-18T11:18:00.1487129Z       "requiredStages": [
2026-06-18T11:18:00.1487225Z         "impl",
2026-06-18T11:18:00.1487302Z         "unit",
2026-06-18T11:18:00.1487382Z         "int"
2026-06-18T11:18:00.1487477Z       ],
2026-06-18T11:18:00.1487564Z       "stages": {
2026-06-18T11:18:00.1487664Z         "doc": {
2026-06-18T11:18:00.1487759Z           "complete": false,
2026-06-18T11:18:00.1487854Z           "evidence": []
2026-06-18T11:18:00.1487937Z         },
2026-06-18T11:18:00.1488035Z         "impl": {
2026-06-18T11:18:00.1488131Z           "complete": true,
2026-06-18T11:18:00.1488218Z           "evidence": [
2026-06-18T11:18:00.1488303Z             {
2026-06-18T11:18:00.1488422Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.1488518Z               "line": 217
2026-06-18T11:18:00.1488599Z             },
2026-06-18T11:18:00.1488679Z             {
2026-06-18T11:18:00.1488802Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T11:18:00.1491527Z               "line": 403
2026-06-18T11:18:00.1491640Z             },
2026-06-18T11:18:00.1491721Z             {
2026-06-18T11:18:00.1491865Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T11:18:00.1491964Z               "line": 250
2026-06-18T11:18:00.1492046Z             },
2026-06-18T11:18:00.1492138Z             {
2026-06-18T11:18:00.1492270Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.1492366Z               "line": 403
2026-06-18T11:18:00.1492443Z             },
2026-06-18T11:18:00.1492528Z             {
2026-06-18T11:18:00.1492661Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T11:18:00.1492757Z               "line": 30
2026-06-18T11:18:00.1492837Z             },
2026-06-18T11:18:00.1492923Z             {
2026-06-18T11:18:00.1493043Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T11:18:00.1493129Z               "line": 409
2026-06-18T11:18:00.1493228Z             },
2026-06-18T11:18:00.1493305Z             {
2026-06-18T11:18:00.1493430Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T11:18:00.1493514Z               "line": 445
2026-06-18T11:18:00.1493601Z             },
2026-06-18T11:18:00.1493683Z             {
2026-06-18T11:18:00.1493796Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T11:18:00.1493890Z               "line": 660
2026-06-18T11:18:00.1493971Z             },
2026-06-18T11:18:00.1494048Z             {
2026-06-18T11:18:00.1494159Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.1494245Z               "line": 348
2026-06-18T11:18:00.1494327Z             },
2026-06-18T11:18:00.1494413Z             {
2026-06-18T11:18:00.1494536Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-18T11:18:00.1494632Z               "line": 115
2026-06-18T11:18:00.1494713Z             },
2026-06-18T11:18:00.1494808Z             {
2026-06-18T11:18:00.1494923Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.1495028Z               "line": 120
2026-06-18T11:18:00.1495114Z             },
2026-06-18T11:18:00.1495194Z             {
2026-06-18T11:18:00.1495319Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.1495399Z               "line": 373
2026-06-18T11:18:00.1495615Z             },
2026-06-18T11:18:00.1495699Z             {
2026-06-18T11:18:00.1495824Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.1495915Z               "line": 499
2026-06-18T11:18:00.1496000Z             },
2026-06-18T11:18:00.1496091Z             {
2026-06-18T11:18:00.1496207Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T11:18:00.1496302Z               "line": 24
2026-06-18T11:18:00.1496381Z             },
2026-06-18T11:18:00.1496466Z             {
2026-06-18T11:18:00.1496581Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T11:18:00.1496679Z               "line": 76
2026-06-18T11:18:00.1496864Z             },
2026-06-18T11:18:00.1496951Z             {
2026-06-18T11:18:00.1497074Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T11:18:00.1497165Z               "line": 154
2026-06-18T11:18:00.1497256Z             },
2026-06-18T11:18:00.1497346Z             {
2026-06-18T11:18:00.1497465Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T11:18:00.1497561Z               "line": 177
2026-06-18T11:18:00.1497647Z             },
2026-06-18T11:18:00.1497732Z             {
2026-06-18T11:18:00.1497848Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T11:18:00.1497942Z               "line": 273
2026-06-18T11:18:00.1498023Z             },
2026-06-18T11:18:00.1498104Z             {
2026-06-18T11:18:00.1498228Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T11:18:00.1498319Z               "line": 456
2026-06-18T11:18:00.1498404Z             },
2026-06-18T11:18:00.1498492Z             {
2026-06-18T11:18:00.1498624Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T11:18:00.1498715Z               "line": 538
2026-06-18T11:18:00.1498787Z             },
2026-06-18T11:18:00.1498868Z             {
2026-06-18T11:18:00.1499069Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-18T11:18:00.1499164Z               "line": 27
2026-06-18T11:18:00.1499253Z             },
2026-06-18T11:18:00.1499333Z             {
2026-06-18T11:18:00.1499458Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-18T11:18:00.1499544Z               "line": 48
2026-06-18T11:18:00.1499624Z             },
2026-06-18T11:18:00.1499705Z             {
2026-06-18T11:18:00.1499826Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.1499925Z               "line": 513
2026-06-18T11:18:00.1500010Z             },
2026-06-18T11:18:00.1500093Z             {
2026-06-18T11:18:00.1500197Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1500287Z               "line": 1809
2026-06-18T11:18:00.1500368Z             },
2026-06-18T11:18:00.1500464Z             {
2026-06-18T11:18:00.1500564Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1500659Z               "line": 6173
2026-06-18T11:18:00.1500741Z             },
2026-06-18T11:18:00.1500821Z             {
2026-06-18T11:18:00.1500931Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1501013Z               "line": 6234
2026-06-18T11:18:00.1501089Z             },
2026-06-18T11:18:00.1501169Z             {
2026-06-18T11:18:00.1501279Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1501371Z               "line": 6262
2026-06-18T11:18:00.1501451Z             },
2026-06-18T11:18:00.1501535Z             {
2026-06-18T11:18:00.1501640Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1501736Z               "line": 6316
2026-06-18T11:18:00.1501820Z             },
2026-06-18T11:18:00.1501900Z             {
2026-06-18T11:18:00.1502001Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1502087Z               "line": 6571
2026-06-18T11:18:00.1502168Z             },
2026-06-18T11:18:00.1502253Z             {
2026-06-18T11:18:00.1502354Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1502444Z               "line": 6631
2026-06-18T11:18:00.1502534Z             },
2026-06-18T11:18:00.1502730Z             {
2026-06-18T11:18:00.1502844Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T11:18:00.1502946Z               "line": 298
2026-06-18T11:18:00.1503026Z             },
2026-06-18T11:18:00.1503116Z             {
2026-06-18T11:18:00.1503217Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T11:18:00.1503312Z               "line": 339
2026-06-18T11:18:00.1503393Z             }
2026-06-18T11:18:00.1503474Z           ]
2026-06-18T11:18:00.1503565Z         },
2026-06-18T11:18:00.1503651Z         "int": {
2026-06-18T11:18:00.1503745Z           "complete": true,
2026-06-18T11:18:00.1503831Z           "evidence": [
2026-06-18T11:18:00.1504041Z             {
2026-06-18T11:18:00.1504171Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T11:18:00.1504257Z               "line": 704
2026-06-18T11:18:00.1504337Z             },
2026-06-18T11:18:00.1504412Z             {
2026-06-18T11:18:00.1504541Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1504640Z               "line": 777
2026-06-18T11:18:00.1504729Z             },
2026-06-18T11:18:00.1504819Z             {
2026-06-18T11:18:00.1504935Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1505030Z               "line": 1212
2026-06-18T11:18:00.1505106Z             },
2026-06-18T11:18:00.1505192Z             {
2026-06-18T11:18:00.1505317Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-18T11:18:00.1505415Z               "line": 18
2026-06-18T11:18:00.1505503Z             }
2026-06-18T11:18:00.1505584Z           ]
2026-06-18T11:18:00.1505665Z         },
2026-06-18T11:18:00.1505759Z         "unit": {
2026-06-18T11:18:00.1505860Z           "complete": true,
2026-06-18T11:18:00.1505940Z           "evidence": [
2026-06-18T11:18:00.1506021Z             {
2026-06-18T11:18:00.1506146Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T11:18:00.1506232Z               "line": 744
2026-06-18T11:18:00.1506317Z             },
2026-06-18T11:18:00.1506398Z             {
2026-06-18T11:18:00.1506514Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T11:18:00.1506603Z               "line": 796
2026-06-18T11:18:00.1506689Z             },
2026-06-18T11:18:00.1506781Z             {
2026-06-18T11:18:00.1506899Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.1506998Z               "line": 704
2026-06-18T11:18:00.1507079Z             },
2026-06-18T11:18:00.1507165Z             {
2026-06-18T11:18:00.1507282Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.1507371Z               "line": 753
2026-06-18T11:18:00.1507468Z             },
2026-06-18T11:18:00.1507554Z             {
2026-06-18T11:18:00.1507677Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.1507764Z               "line": 777
2026-06-18T11:18:00.1507845Z             },
2026-06-18T11:18:00.1507925Z             {
2026-06-18T11:18:00.1508055Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T11:18:00.1508150Z               "line": 603
2026-06-18T11:18:00.1508231Z             },
2026-06-18T11:18:00.1508311Z             {
2026-06-18T11:18:00.1508418Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T11:18:00.1508507Z               "line": 624
2026-06-18T11:18:00.1508592Z             },
2026-06-18T11:18:00.1508669Z             {
2026-06-18T11:18:00.1508789Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T11:18:00.1508879Z               "line": 660
2026-06-18T11:18:00.1509033Z             },
2026-06-18T11:18:00.1509108Z             {
2026-06-18T11:18:00.1509236Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T11:18:00.1509324Z               "line": 714
2026-06-18T11:18:00.1509405Z             },
2026-06-18T11:18:00.1509484Z             {
2026-06-18T11:18:00.1509629Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T11:18:00.1509729Z               "line": 732
2026-06-18T11:18:00.1509907Z             },
2026-06-18T11:18:00.1509989Z             {
2026-06-18T11:18:00.1510109Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T11:18:00.1510194Z               "line": 766
2026-06-18T11:18:00.1510280Z             },
2026-06-18T11:18:00.1510366Z             {
2026-06-18T11:18:00.1510485Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T11:18:00.1510580Z               "line": 841
2026-06-18T11:18:00.1510662Z             },
2026-06-18T11:18:00.1510743Z             {
2026-06-18T11:18:00.1510871Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-18T11:18:00.1511062Z               "line": 85
2026-06-18T11:18:00.1511143Z             },
2026-06-18T11:18:00.1511229Z             {
2026-06-18T11:18:00.1511334Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1511415Z               "line": 7866
2026-06-18T11:18:00.1511501Z             },
2026-06-18T11:18:00.1511588Z             {
2026-06-18T11:18:00.1511696Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1511777Z               "line": 8824
2026-06-18T11:18:00.1511863Z             },
2026-06-18T11:18:00.1511945Z             {
2026-06-18T11:18:00.1512049Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1512129Z               "line": 8894
2026-06-18T11:18:00.1512215Z             },
2026-06-18T11:18:00.1512291Z             {
2026-06-18T11:18:00.1512394Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1512493Z               "line": 8932
2026-06-18T11:18:00.1512575Z             }
2026-06-18T11:18:00.1512662Z           ]
2026-06-18T11:18:00.1512747Z         }
2026-06-18T11:18:00.1512832Z       }
2026-06-18T11:18:00.1512919Z     },
2026-06-18T11:18:00.1513000Z     {
2026-06-18T11:18:00.1513099Z       "id": "REQ-SHELL-3",
2026-06-18T11:18:00.1514911Z       "title": "Drive channel (owner->shell, REST-only, never-spooled, latest-wins): the owner->shell mirror of sensory for continuous real-time control (scroll/crank/stick/avatar) — a [shell.drive] manifest vocab + EVENT_TYPE_DRIVE frame, delivered to the ONLINE binary only via a single live slot (a new frame supersedes an undelivered one — no spool, no queue, no replay on relink), dropped-with-diagnostic if the shell is offline; cross-node rides the ephemeral link (REST class), never the durable shell spool. Commands = discrete+durable; drive = continuous+ephemeral (CONTEXT:260, minted 2026-06-11 Gateway grill).",
2026-06-18T11:18:00.1515024Z       "requiredStages": [
2026-06-18T11:18:00.1515106Z         "impl",
2026-06-18T11:18:00.1515196Z         "unit",
2026-06-18T11:18:00.1515285Z         "int"
2026-06-18T11:18:00.1515380Z       ],
2026-06-18T11:18:00.1515461Z       "stages": {
2026-06-18T11:18:00.1515557Z         "doc": {
2026-06-18T11:18:00.1515651Z           "complete": false,
2026-06-18T11:18:00.1515748Z           "evidence": []
2026-06-18T11:18:00.1515843Z         },
2026-06-18T11:18:00.1515933Z         "impl": {
2026-06-18T11:18:00.1516043Z           "complete": true,
2026-06-18T11:18:00.1516134Z           "evidence": [
2026-06-18T11:18:00.1516225Z             {
2026-06-18T11:18:00.1516348Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:18:00.1516444Z               "line": 224
2026-06-18T11:18:00.1516539Z             },
2026-06-18T11:18:00.1516615Z             {
2026-06-18T11:18:00.1516735Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T11:18:00.1516816Z               "line": 36
2026-06-18T11:18:00.1516897Z             },
2026-06-18T11:18:00.1516982Z             {
2026-06-18T11:18:00.1517107Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T11:18:00.1517211Z               "line": 137
2026-06-18T11:18:00.1517293Z             },
2026-06-18T11:18:00.1517379Z             {
2026-06-18T11:18:00.1517496Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T11:18:00.1517587Z               "line": 153
2026-06-18T11:18:00.1517672Z             },
2026-06-18T11:18:00.1517832Z             {
2026-06-18T11:18:00.1517956Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T11:18:00.1518038Z               "line": 165
2026-06-18T11:18:00.1518119Z             },
2026-06-18T11:18:00.1518204Z             {
2026-06-18T11:18:00.1518319Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T11:18:00.1518405Z               "line": 242
2026-06-18T11:18:00.1518490Z             },
2026-06-18T11:18:00.1518580Z             {
2026-06-18T11:18:00.1518696Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T11:18:00.1518777Z               "line": 267
2026-06-18T11:18:00.1518862Z             },
2026-06-18T11:18:00.1519096Z             {
2026-06-18T11:18:00.1519210Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T11:18:00.1519302Z               "line": 293
2026-06-18T11:18:00.1519391Z             },
2026-06-18T11:18:00.1519472Z             {
2026-06-18T11:18:00.1519593Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-18T11:18:00.1519678Z               "line": 51
2026-06-18T11:18:00.1519768Z             },
2026-06-18T11:18:00.1519854Z             {
2026-06-18T11:18:00.1519961Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T11:18:00.1520044Z               "line": 333
2026-06-18T11:18:00.1520131Z             },
2026-06-18T11:18:00.1520222Z             {
2026-06-18T11:18:00.1520340Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T11:18:00.1520425Z               "line": 373
2026-06-18T11:18:00.1520511Z             },
2026-06-18T11:18:00.1520593Z             {
2026-06-18T11:18:00.1520711Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T11:18:00.1520797Z               "line": 602
2026-06-18T11:18:00.1520878Z             },
2026-06-18T11:18:00.1520955Z             {
2026-06-18T11:18:00.1521083Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-18T11:18:00.1521189Z               "line": 132
2026-06-18T11:18:00.1521269Z             },
2026-06-18T11:18:00.1521364Z             {
2026-06-18T11:18:00.1521484Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.1521565Z               "line": 447
2026-06-18T11:18:00.1521651Z             },
2026-06-18T11:18:00.1521736Z             {
2026-06-18T11:18:00.1521857Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T11:18:00.1521946Z               "line": 74
2026-06-18T11:18:00.1522027Z             },
2026-06-18T11:18:00.1522104Z             {
2026-06-18T11:18:00.1522228Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.1522313Z               "line": 561
2026-06-18T11:18:00.1522395Z             },
2026-06-18T11:18:00.1522492Z             {
2026-06-18T11:18:00.1522613Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.1522698Z               "line": 392
2026-06-18T11:18:00.1522779Z             },
2026-06-18T11:18:00.1522860Z             {
2026-06-18T11:18:00.1522968Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1523068Z               "line": 6357
2026-06-18T11:18:00.1523154Z             }
2026-06-18T11:18:00.1523231Z           ]
2026-06-18T11:18:00.1523321Z         },
2026-06-18T11:18:00.1523397Z         "int": {
2026-06-18T11:18:00.1523489Z           "complete": true,
2026-06-18T11:18:00.1523578Z           "evidence": [
2026-06-18T11:18:00.1523664Z             {
2026-06-18T11:18:00.1523789Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1523874Z               "line": 1261
2026-06-18T11:18:00.1523965Z             },
2026-06-18T11:18:00.1524046Z             {
2026-06-18T11:18:00.1524165Z               "path": "crates/spt/tests/drive_e2e.rs",
2026-06-18T11:18:00.1524270Z               "line": 17
2026-06-18T11:18:00.1524370Z             }
2026-06-18T11:18:00.1524484Z           ]
2026-06-18T11:18:00.1524565Z         },
2026-06-18T11:18:00.1524646Z         "unit": {
2026-06-18T11:18:00.1524743Z           "complete": true,
2026-06-18T11:18:00.1524842Z           "evidence": [
2026-06-18T11:18:00.1525029Z             {
2026-06-18T11:18:00.1525152Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T11:18:00.1525252Z               "line": 311
2026-06-18T11:18:00.1525329Z             },
2026-06-18T11:18:00.1525420Z             {
2026-06-18T11:18:00.1525533Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T11:18:00.1525618Z               "line": 325
2026-06-18T11:18:00.1525704Z             },
2026-06-18T11:18:00.1525788Z             {
2026-06-18T11:18:00.1525911Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T11:18:00.1525988Z               "line": 343
2026-06-18T11:18:00.1526174Z             },
2026-06-18T11:18:00.1526255Z             {
2026-06-18T11:18:00.1526380Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T11:18:00.1526470Z               "line": 364
2026-06-18T11:18:00.1526559Z             },
2026-06-18T11:18:00.1526647Z             {
2026-06-18T11:18:00.1526761Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T11:18:00.1526869Z               "line": 376
2026-06-18T11:18:00.1526947Z             },
2026-06-18T11:18:00.1527037Z             {
2026-06-18T11:18:00.1527156Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T11:18:00.1527232Z               "line": 897
2026-06-18T11:18:00.1527319Z             },
2026-06-18T11:18:00.1527399Z             {
2026-06-18T11:18:00.1527518Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T11:18:00.1527610Z               "line": 957
2026-06-18T11:18:00.1527700Z             },
2026-06-18T11:18:00.1527786Z             {
2026-06-18T11:18:00.1527906Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-18T11:18:00.1528010Z               "line": 338
2026-06-18T11:18:00.1528094Z             },
2026-06-18T11:18:00.1528180Z             {
2026-06-18T11:18:00.1528275Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T11:18:00.1528374Z               "line": 769
2026-06-18T11:18:00.1528468Z             },
2026-06-18T11:18:00.1528550Z             {
2026-06-18T11:18:00.1528666Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1528740Z               "line": 8606
2026-06-18T11:18:00.1528826Z             }
2026-06-18T11:18:00.1528908Z           ]
2026-06-18T11:18:00.1529069Z         }
2026-06-18T11:18:00.1529155Z       }
2026-06-18T11:18:00.1529237Z     },
2026-06-18T11:18:00.1529323Z     {
2026-06-18T11:18:00.1529417Z       "id": "REQ-SHELL-4",
2026-06-18T11:18:00.1531158Z       "title": "Shell tunnel (reliable-ordered opaque byte stream): an owner<->shell link may hold a long-lived, reliable-ordered, link-bound QUIC stream pair carrying opaque wire protocol traffic the channel taxonomy must NOT reinterpret (first consumer usbip URB) — manifest opt-in, not enveloped, not MAC-framed, not spooled; the link lifecycle governs it (a link-break closes the tunnel). Reliable-ordered ⇒ congestion surfaces as lag never loss ⇒ acceptable only on-LAN: the on-LAN posture is documented and the tunnel is NOT proven cross-WAN (CONTEXT:262, minted 2026-06-11 Gateway grill; doyle gate C2).",
2026-06-18T11:18:00.1531271Z       "requiredStages": [
2026-06-18T11:18:00.1531357Z         "doc",
2026-06-18T11:18:00.1531443Z         "impl",
2026-06-18T11:18:00.1531524Z         "unit",
2026-06-18T11:18:00.1531614Z         "int"
2026-06-18T11:18:00.1531695Z       ],
2026-06-18T11:18:00.1531783Z       "stages": {
2026-06-18T11:18:00.1531868Z         "doc": {
2026-06-18T11:18:00.1531972Z           "complete": true,
2026-06-18T11:18:00.1532068Z           "evidence": [
2026-06-18T11:18:00.1532144Z             {
2026-06-18T11:18:00.1532249Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.1532349Z               "line": 281
2026-06-18T11:18:00.1532432Z             },
2026-06-18T11:18:00.1532521Z             {
2026-06-18T11:18:00.1532741Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
2026-06-18T11:18:00.1532844Z               "line": 88
2026-06-18T11:18:00.1533056Z             }
2026-06-18T11:18:00.1533145Z           ]
2026-06-18T11:18:00.1533231Z         },
2026-06-18T11:18:00.1533311Z         "impl": {
2026-06-18T11:18:00.1533411Z           "complete": true,
2026-06-18T11:18:00.1533500Z           "evidence": [
2026-06-18T11:18:00.1533580Z             {
2026-06-18T11:18:00.1533705Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:18:00.1533791Z               "line": 238
2026-06-18T11:18:00.1533881Z             },
2026-06-18T11:18:00.1533958Z             {
2026-06-18T11:18:00.1534087Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-18T11:18:00.1534176Z               "line": 61
2026-06-18T11:18:00.1534358Z             },
2026-06-18T11:18:00.1534449Z             {
2026-06-18T11:18:00.1534577Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T11:18:00.1534669Z               "line": 218
2026-06-18T11:18:00.1534749Z             },
2026-06-18T11:18:00.1534834Z             {
2026-06-18T11:18:00.1534965Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T11:18:00.1535059Z               "line": 245
2026-06-18T11:18:00.1535145Z             },
2026-06-18T11:18:00.1535236Z             {
2026-06-18T11:18:00.1535355Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:18:00.1535445Z               "line": 566
2026-06-18T11:18:00.1535521Z             },
2026-06-18T11:18:00.1535609Z             {
2026-06-18T11:18:00.1535731Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:18:00.1535822Z               "line": 1141
2026-06-18T11:18:00.1535909Z             },
2026-06-18T11:18:00.1535999Z             {
2026-06-18T11:18:00.1536112Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:18:00.1536211Z               "line": 1153
2026-06-18T11:18:00.1536288Z             },
2026-06-18T11:18:00.1536376Z             {
2026-06-18T11:18:00.1536505Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:18:00.1536606Z               "line": 1194
2026-06-18T11:18:00.1536701Z             },
2026-06-18T11:18:00.1536776Z             {
2026-06-18T11:18:00.1536911Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.1537006Z               "line": 455
2026-06-18T11:18:00.1537091Z             },
2026-06-18T11:18:00.1537178Z             {
2026-06-18T11:18:00.1537306Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T11:18:00.1537397Z               "line": 44
2026-06-18T11:18:00.1537483Z             },
2026-06-18T11:18:00.1537564Z             {
2026-06-18T11:18:00.1537683Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T11:18:00.1537769Z               "line": 208
2026-06-18T11:18:00.1537870Z             },
2026-06-18T11:18:00.1537950Z             {
2026-06-18T11:18:00.1538074Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T11:18:00.1538156Z               "line": 227
2026-06-18T11:18:00.1538241Z             },
2026-06-18T11:18:00.1538326Z             {
2026-06-18T11:18:00.1538452Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T11:18:00.1538542Z               "line": 253
2026-06-18T11:18:00.1538622Z             },
2026-06-18T11:18:00.1538702Z             {
2026-06-18T11:18:00.1538816Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T11:18:00.1538911Z               "line": 272
2026-06-18T11:18:00.1539067Z             },
2026-06-18T11:18:00.1539153Z             {
2026-06-18T11:18:00.1539272Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T11:18:00.1539367Z               "line": 392
2026-06-18T11:18:00.1539444Z             },
2026-06-18T11:18:00.1539530Z             {
2026-06-18T11:18:00.1539658Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T11:18:00.1539745Z               "line": 421
2026-06-18T11:18:00.1539831Z             },
2026-06-18T11:18:00.1539916Z             {
2026-06-18T11:18:00.1540025Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T11:18:00.1540221Z               "line": 439
2026-06-18T11:18:00.1540306Z             },
2026-06-18T11:18:00.1540403Z             {
2026-06-18T11:18:00.1540521Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T11:18:00.1540621Z               "line": 458
2026-06-18T11:18:00.1540704Z             },
2026-06-18T11:18:00.1540784Z             {
2026-06-18T11:18:00.1540908Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T11:18:00.1540999Z               "line": 486
2026-06-18T11:18:00.1541085Z             },
2026-06-18T11:18:00.1541165Z             {
2026-06-18T11:18:00.1541290Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.1541475Z               "line": 580
2026-06-18T11:18:00.1541565Z             },
2026-06-18T11:18:00.1541650Z             {
2026-06-18T11:18:00.1541771Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.1541869Z               "line": 785
2026-06-18T11:18:00.1541955Z             },
2026-06-18T11:18:00.1542047Z             {
2026-06-18T11:18:00.1542174Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.1542256Z               "line": 431
2026-06-18T11:18:00.1542343Z             },
2026-06-18T11:18:00.1542423Z             {
2026-06-18T11:18:00.1542537Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1542633Z               "line": 6413
2026-06-18T11:18:00.1542714Z             }
2026-06-18T11:18:00.1542800Z           ]
2026-06-18T11:18:00.1542890Z         },
2026-06-18T11:18:00.1542987Z         "int": {
2026-06-18T11:18:00.1543081Z           "complete": true,
2026-06-18T11:18:00.1543166Z           "evidence": [
2026-06-18T11:18:00.1543254Z             {
2026-06-18T11:18:00.1543376Z               "path": "crates/spt/tests/tunnel_e2e.rs",
2026-06-18T11:18:00.1543471Z               "line": 18
2026-06-18T11:18:00.1543558Z             }
2026-06-18T11:18:00.1543640Z           ]
2026-06-18T11:18:00.1543724Z         },
2026-06-18T11:18:00.1543819Z         "unit": {
2026-06-18T11:18:00.1543900Z           "complete": true,
2026-06-18T11:18:00.1543990Z           "evidence": [
2026-06-18T11:18:00.1544084Z             {
2026-06-18T11:18:00.1544203Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:18:00.1544304Z               "line": 1391
2026-06-18T11:18:00.1544389Z             },
2026-06-18T11:18:00.1544470Z             {
2026-06-18T11:18:00.1544595Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:18:00.1544690Z               "line": 1420
2026-06-18T11:18:00.1544775Z             },
2026-06-18T11:18:00.1544856Z             {
2026-06-18T11:18:00.1544980Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T11:18:00.1545080Z               "line": 504
2026-06-18T11:18:00.1545167Z             },
2026-06-18T11:18:00.1545257Z             {
2026-06-18T11:18:00.1545380Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T11:18:00.1545461Z               "line": 514
2026-06-18T11:18:00.1545539Z             },
2026-06-18T11:18:00.1545638Z             {
2026-06-18T11:18:00.1545757Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T11:18:00.1545854Z               "line": 531
2026-06-18T11:18:00.1545948Z             },
2026-06-18T11:18:00.1546034Z             {
2026-06-18T11:18:00.1546159Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T11:18:00.1546248Z               "line": 543
2026-06-18T11:18:00.1546334Z             },
2026-06-18T11:18:00.1546416Z             {
2026-06-18T11:18:00.1546540Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T11:18:00.1546634Z               "line": 555
2026-06-18T11:18:00.1546719Z             },
2026-06-18T11:18:00.1546796Z             {
2026-06-18T11:18:00.1546918Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.1547017Z               "line": 1086
2026-06-18T11:18:00.1547089Z             },
2026-06-18T11:18:00.1547180Z             {
2026-06-18T11:18:00.1547299Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T11:18:00.1547476Z               "line": 776
2026-06-18T11:18:00.1547557Z             }
2026-06-18T11:18:00.1547637Z           ]
2026-06-18T11:18:00.1547723Z         }
2026-06-18T11:18:00.1547810Z       }
2026-06-18T11:18:00.1547891Z     },
2026-06-18T11:18:00.1547976Z     {
2026-06-18T11:18:00.1548072Z       "id": "REQ-SHELL-5",
2026-06-18T11:18:00.1549338Z       "title": "Shell ownership is owner-type-agnostic: any non-Shell endpoint type may own/spawn/drive/command/link a shell (Gateway the named first) — control-exclusivity keys on the owner endpoint_id, NEVER on the owner's endpoint type. No ownership path (mint, launch, owner-from-link, cmd, drive, tunnel, sleep/wake, owner-shutdown) inspects the owner's type (CONTEXT:264, ratified 2026-06-11 Gateway grill).",
2026-06-18T11:18:00.1549541Z       "requiredStages": [
2026-06-18T11:18:00.1549632Z         "doc",
2026-06-18T11:18:00.1549713Z         "impl",
2026-06-18T11:18:00.1549795Z         "unit",
2026-06-18T11:18:00.1549889Z         "int"
2026-06-18T11:18:00.1549970Z       ],
2026-06-18T11:18:00.1550062Z       "stages": {
2026-06-18T11:18:00.1550143Z         "doc": {
2026-06-18T11:18:00.1550237Z           "complete": true,
2026-06-18T11:18:00.1550333Z           "evidence": [
2026-06-18T11:18:00.1550414Z             {
2026-06-18T11:18:00.1550519Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.1550600Z               "line": 284
2026-06-18T11:18:00.1550686Z             }
2026-06-18T11:18:00.1550766Z           ]
2026-06-18T11:18:00.1550852Z         },
2026-06-18T11:18:00.1550944Z         "impl": {
2026-06-18T11:18:00.1551029Z           "complete": true,
2026-06-18T11:18:00.1551139Z           "evidence": [
2026-06-18T11:18:00.1551225Z             {
2026-06-18T11:18:00.1551354Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T11:18:00.1551434Z               "line": 259
2026-06-18T11:18:00.1551520Z             }
2026-06-18T11:18:00.1551607Z           ]
2026-06-18T11:18:00.1551687Z         },
2026-06-18T11:18:00.1551802Z         "int": {
2026-06-18T11:18:00.1551898Z           "complete": true,
2026-06-18T11:18:00.1551988Z           "evidence": [
2026-06-18T11:18:00.1552068Z             {
2026-06-18T11:18:00.1552201Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1552297Z               "line": 826
2026-06-18T11:18:00.1552383Z             },
2026-06-18T11:18:00.1552472Z             {
2026-06-18T11:18:00.1552593Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1552679Z               "line": 1289
2026-06-18T11:18:00.1552763Z             },
2026-06-18T11:18:00.1552855Z             {
2026-06-18T11:18:00.1553017Z               "path": "crates/spt/tests/gateway_owner_shell_e2e.rs",
2026-06-18T11:18:00.1553106Z               "line": 23
2026-06-18T11:18:00.1553198Z             }
2026-06-18T11:18:00.1553284Z           ]
2026-06-18T11:18:00.1553369Z         },
2026-06-18T11:18:00.1553464Z         "unit": {
2026-06-18T11:18:00.1553552Z           "complete": true,
2026-06-18T11:18:00.1553650Z           "evidence": [
2026-06-18T11:18:00.1553726Z             {
2026-06-18T11:18:00.1553857Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T11:18:00.1553937Z               "line": 803
2026-06-18T11:18:00.1554027Z             }
2026-06-18T11:18:00.1554118Z           ]
2026-06-18T11:18:00.1554224Z         }
2026-06-18T11:18:00.1554303Z       }
2026-06-18T11:18:00.1554384Z     },
2026-06-18T11:18:00.1554465Z     {
2026-06-18T11:18:00.1554551Z       "id": "REQ-START-1",
2026-06-18T11:18:00.1554748Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-18T11:18:00.1554849Z       "requiredStages": [
2026-06-18T11:18:00.1554940Z         "impl",
2026-06-18T11:18:00.1555030Z         "unit"
2026-06-18T11:18:00.1555102Z       ],
2026-06-18T11:18:00.1555197Z       "stages": {
2026-06-18T11:18:00.1555287Z         "doc": {
2026-06-18T11:18:00.1555382Z           "complete": false,
2026-06-18T11:18:00.1555470Z           "evidence": []
2026-06-18T11:18:00.1555664Z         },
2026-06-18T11:18:00.1555760Z         "impl": {
2026-06-18T11:18:00.1555855Z           "complete": true,
2026-06-18T11:18:00.1555950Z           "evidence": [
2026-06-18T11:18:00.1556036Z             {
2026-06-18T11:18:00.1556151Z               "path": "crates/spt-store/src/seed.rs",
2026-06-18T11:18:00.1556241Z               "line": 16
2026-06-18T11:18:00.1556322Z             }
2026-06-18T11:18:00.1556414Z           ]
2026-06-18T11:18:00.1556498Z         },
2026-06-18T11:18:00.1556594Z         "int": {
2026-06-18T11:18:00.1556686Z           "complete": false,
2026-06-18T11:18:00.1556785Z           "evidence": []
2026-06-18T11:18:00.1556952Z         },
2026-06-18T11:18:00.1557034Z         "unit": {
2026-06-18T11:18:00.1557128Z           "complete": true,
2026-06-18T11:18:00.1557218Z           "evidence": [
2026-06-18T11:18:00.1557308Z             {
2026-06-18T11:18:00.1557427Z               "path": "crates/spt-store/src/seed.rs",
2026-06-18T11:18:00.1557520Z               "line": 48
2026-06-18T11:18:00.1557605Z             },
2026-06-18T11:18:00.1557697Z             {
2026-06-18T11:18:00.1557811Z               "path": "crates/spt-store/src/seed.rs",
2026-06-18T11:18:00.1557892Z               "line": 63
2026-06-18T11:18:00.1557978Z             }
2026-06-18T11:18:00.1558060Z           ]
2026-06-18T11:18:00.1558145Z         }
2026-06-18T11:18:00.1558230Z       }
2026-06-18T11:18:00.1558318Z     },
2026-06-18T11:18:00.1558403Z     {
2026-06-18T11:18:00.1558497Z       "id": "REQ-START-2",
2026-06-18T11:18:00.1558647Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-18T11:18:00.1558731Z       "requiredStages": [
2026-06-18T11:18:00.1558836Z         "impl",
2026-06-18T11:18:00.1558928Z         "unit",
2026-06-18T11:18:00.1559108Z         "int"
2026-06-18T11:18:00.1559198Z       ],
2026-06-18T11:18:00.1559286Z       "stages": {
2026-06-18T11:18:00.1559380Z         "doc": {
2026-06-18T11:18:00.1562090Z           "complete": false,
2026-06-18T11:18:00.1562224Z           "evidence": []
2026-06-18T11:18:00.1562304Z         },
2026-06-18T11:18:00.1562400Z         "impl": {
2026-06-18T11:18:00.1562501Z           "complete": true,
2026-06-18T11:18:00.1562590Z           "evidence": [
2026-06-18T11:18:00.1562675Z             {
2026-06-18T11:18:00.1562800Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1562901Z               "line": 16
2026-06-18T11:18:00.1562976Z             },
2026-06-18T11:18:00.1563066Z             {
2026-06-18T11:18:00.1563182Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1563276Z               "line": 115
2026-06-18T11:18:00.1563361Z             },
2026-06-18T11:18:00.1563444Z             {
2026-06-18T11:18:00.1563563Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1563652Z               "line": 276
2026-06-18T11:18:00.1563734Z             }
2026-06-18T11:18:00.1563815Z           ]
2026-06-18T11:18:00.1563901Z         },
2026-06-18T11:18:00.1563991Z         "int": {
2026-06-18T11:18:00.1564088Z           "complete": true,
2026-06-18T11:18:00.1564182Z           "evidence": [
2026-06-18T11:18:00.1564268Z             {
2026-06-18T11:18:00.1564398Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-18T11:18:00.1564493Z               "line": 186
2026-06-18T11:18:00.1564573Z             }
2026-06-18T11:18:00.1564659Z           ]
2026-06-18T11:18:00.1564741Z         },
2026-06-18T11:18:00.1564821Z         "unit": {
2026-06-18T11:18:00.1564906Z           "complete": true,
2026-06-18T11:18:00.1565001Z           "evidence": [
2026-06-18T11:18:00.1565087Z             {
2026-06-18T11:18:00.1565199Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1565294Z               "line": 559
2026-06-18T11:18:00.1565380Z             },
2026-06-18T11:18:00.1565458Z             {
2026-06-18T11:18:00.1565561Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1565652Z               "line": 592
2026-06-18T11:18:00.1565900Z             }
2026-06-18T11:18:00.1565986Z           ]
2026-06-18T11:18:00.1566077Z         }
2026-06-18T11:18:00.1566162Z       }
2026-06-18T11:18:00.1566248Z     },
2026-06-18T11:18:00.1566330Z     {
2026-06-18T11:18:00.1566429Z       "id": "REQ-START-3",
2026-06-18T11:18:00.1566611Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-18T11:18:00.1566697Z       "requiredStages": [
2026-06-18T11:18:00.1566788Z         "impl",
2026-06-18T11:18:00.1566873Z         "unit",
2026-06-18T11:18:00.1566960Z         "int"
2026-06-18T11:18:00.1567040Z       ],
2026-06-18T11:18:00.1567126Z       "stages": {
2026-06-18T11:18:00.1567211Z         "doc": {
2026-06-18T11:18:00.1567406Z           "complete": false,
2026-06-18T11:18:00.1567507Z           "evidence": []
2026-06-18T11:18:00.1567594Z         },
2026-06-18T11:18:00.1567679Z         "impl": {
2026-06-18T11:18:00.1567778Z           "complete": true,
2026-06-18T11:18:00.1567878Z           "evidence": [
2026-06-18T11:18:00.1567973Z             {
2026-06-18T11:18:00.1568085Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-18T11:18:00.1568180Z               "line": 23
2026-06-18T11:18:00.1568267Z             },
2026-06-18T11:18:00.1568353Z             {
2026-06-18T11:18:00.1568462Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-18T11:18:00.1568558Z               "line": 205
2026-06-18T11:18:00.1568643Z             },
2026-06-18T11:18:00.1568733Z             {
2026-06-18T11:18:00.1568849Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-18T11:18:00.1568934Z               "line": 221
2026-06-18T11:18:00.1569105Z             },
2026-06-18T11:18:00.1569197Z             {
2026-06-18T11:18:00.1569325Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1569420Z               "line": 17
2026-06-18T11:18:00.1569507Z             },
2026-06-18T11:18:00.1569592Z             {
2026-06-18T11:18:00.1569706Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1569808Z               "line": 35
2026-06-18T11:18:00.1569889Z             },
2026-06-18T11:18:00.1569968Z             {
2026-06-18T11:18:00.1570078Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1570161Z               "line": 116
2026-06-18T11:18:00.1570246Z             }
2026-06-18T11:18:00.1570321Z           ]
2026-06-18T11:18:00.1570406Z         },
2026-06-18T11:18:00.1570488Z         "int": {
2026-06-18T11:18:00.1570572Z           "complete": true,
2026-06-18T11:18:00.1570671Z           "evidence": [
2026-06-18T11:18:00.1570762Z             {
2026-06-18T11:18:00.1570934Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-18T11:18:00.1571042Z               "line": 488
2026-06-18T11:18:00.1571130Z             }
2026-06-18T11:18:00.1571220Z           ]
2026-06-18T11:18:00.1571295Z         },
2026-06-18T11:18:00.1571381Z         "unit": {
2026-06-18T11:18:00.1571482Z           "complete": true,
2026-06-18T11:18:00.1571587Z           "evidence": [
2026-06-18T11:18:00.1571672Z             {
2026-06-18T11:18:00.1571792Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-18T11:18:00.1571878Z               "line": 381
2026-06-18T11:18:00.1571953Z             },
2026-06-18T11:18:00.1572040Z             {
2026-06-18T11:18:00.1572159Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-18T11:18:00.1572240Z               "line": 402
2026-06-18T11:18:00.1572321Z             },
2026-06-18T11:18:00.1572403Z             {
2026-06-18T11:18:00.1572516Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-18T11:18:00.1572602Z               "line": 412
2026-06-18T11:18:00.1572694Z             },
2026-06-18T11:18:00.1572779Z             {
2026-06-18T11:18:00.1572898Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1572980Z               "line": 560
2026-06-18T11:18:00.1573071Z             },
2026-06-18T11:18:00.1573150Z             {
2026-06-18T11:18:00.1573263Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1573479Z               "line": 593
2026-06-18T11:18:00.1573559Z             },
2026-06-18T11:18:00.1573640Z             {
2026-06-18T11:18:00.1573756Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1573850Z               "line": 626
2026-06-18T11:18:00.1573965Z             }
2026-06-18T11:18:00.1574070Z           ]
2026-06-18T11:18:00.1574184Z         }
2026-06-18T11:18:00.1574266Z       }
2026-06-18T11:18:00.1574352Z     },
2026-06-18T11:18:00.1574437Z     {
2026-06-18T11:18:00.1574532Z       "id": "REQ-START-4",
2026-06-18T11:18:00.1574676Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-18T11:18:00.1574870Z       "requiredStages": [
2026-06-18T11:18:00.1574963Z         "impl",
2026-06-18T11:18:00.1575043Z         "unit"
2026-06-18T11:18:00.1575128Z       ],
2026-06-18T11:18:00.1575219Z       "stages": {
2026-06-18T11:18:00.1575301Z         "doc": {
2026-06-18T11:18:00.1575405Z           "complete": false,
2026-06-18T11:18:00.1575504Z           "evidence": []
2026-06-18T11:18:00.1575595Z         },
2026-06-18T11:18:00.1575680Z         "impl": {
2026-06-18T11:18:00.1575778Z           "complete": true,
2026-06-18T11:18:00.1575868Z           "evidence": [
2026-06-18T11:18:00.1575955Z             {
2026-06-18T11:18:00.1576079Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.1576169Z               "line": 581
2026-06-18T11:18:00.1576260Z             }
2026-06-18T11:18:00.1576341Z           ]
2026-06-18T11:18:00.1576431Z         },
2026-06-18T11:18:00.1576512Z         "int": {
2026-06-18T11:18:00.1576609Z           "complete": false,
2026-06-18T11:18:00.1576708Z           "evidence": []
2026-06-18T11:18:00.1576798Z         },
2026-06-18T11:18:00.1576885Z         "unit": {
2026-06-18T11:18:00.1576971Z           "complete": true,
2026-06-18T11:18:00.1577061Z           "evidence": [
2026-06-18T11:18:00.1577142Z             {
2026-06-18T11:18:00.1577267Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.1577362Z               "line": 1022
2026-06-18T11:18:00.1577437Z             }
2026-06-18T11:18:00.1577520Z           ]
2026-06-18T11:18:00.1577610Z         }
2026-06-18T11:18:00.1577691Z       }
2026-06-18T11:18:00.1577772Z     },
2026-06-18T11:18:00.1577854Z     {
2026-06-18T11:18:00.1577957Z       "id": "REQ-START-5",
2026-06-18T11:18:00.1580778Z       "title": "Adapter-agnostic harness-hosted seed + bind-time adapter/profile resolution (ADR-0021): `api seed` carries only parent_pid + session_id (+ optional cwd), no --adapter — a pure \"a harness session exists at this pid\" record; --adapter becomes an OPTIONAL override across the whole api group (an explicit name[:profile] for adapter dev, never required). Omitted, listen/poll resolve the owning adapter/profile AT BIND as a pure read against the live registry — never a seed-time snapshot that can drift: seed parent_pid → exe basename → host_binaries candidate set (REQ-MANIFEST-8) → active-profile pointer (REQ-INSTALL-12) primary, else greatest-registered_at_ms candidate base profile (name-asc tie) → friendly zero-match error. Covers BOTH LiveAgent (listen) and ReadyAgent (poll) bringup. Restores legacy parity: `$LIVE start <id>` → `$SPT listen <id>` with no mandatory --adapter, one generic SessionStart hook per harness binary. (v0.9.0)",
2026-06-18T11:18:00.1580895Z       "requiredStages": [
2026-06-18T11:18:00.1580975Z         "doc",
2026-06-18T11:18:00.1581062Z         "impl",
2026-06-18T11:18:00.1581151Z         "unit",
2026-06-18T11:18:00.1581236Z         "int"
2026-06-18T11:18:00.1581317Z       ],
2026-06-18T11:18:00.1581413Z       "stages": {
2026-06-18T11:18:00.1581494Z         "doc": {
2026-06-18T11:18:00.1581602Z           "complete": true,
2026-06-18T11:18:00.1581690Z           "evidence": [
2026-06-18T11:18:00.1581766Z             {
2026-06-18T11:18:00.1581865Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.1581961Z               "line": 176
2026-06-18T11:18:00.1582042Z             },
2026-06-18T11:18:00.1582123Z             {
2026-06-18T11:18:00.1582385Z               "path": "docs-site/src/harness-contract/api.md",
2026-06-18T11:18:00.1582476Z               "line": 28
2026-06-18T11:18:00.1582556Z             }
2026-06-18T11:18:00.1582639Z           ]
2026-06-18T11:18:00.1582729Z         },
2026-06-18T11:18:00.1582819Z         "impl": {
2026-06-18T11:18:00.1582915Z           "complete": true,
2026-06-18T11:18:00.1583001Z           "evidence": [
2026-06-18T11:18:00.1583076Z             {
2026-06-18T11:18:00.1583205Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T11:18:00.1583283Z               "line": 26
2026-06-18T11:18:00.1583377Z             },
2026-06-18T11:18:00.1583555Z             {
2026-06-18T11:18:00.1583673Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T11:18:00.1583762Z               "line": 212
2026-06-18T11:18:00.1583843Z             },
2026-06-18T11:18:00.1583930Z             {
2026-06-18T11:18:00.1584044Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T11:18:00.1584143Z               "line": 221
2026-06-18T11:18:00.1584230Z             },
2026-06-18T11:18:00.1584311Z             {
2026-06-18T11:18:00.1584430Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T11:18:00.1584520Z               "line": 485
2026-06-18T11:18:00.1584612Z             },
2026-06-18T11:18:00.1584697Z             {
2026-06-18T11:18:00.1584816Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1584898Z               "line": 36
2026-06-18T11:18:00.1584983Z             },
2026-06-18T11:18:00.1585068Z             {
2026-06-18T11:18:00.1585169Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1585270Z               "line": 118
2026-06-18T11:18:00.1585350Z             },
2026-06-18T11:18:00.1585430Z             {
2026-06-18T11:18:00.1585546Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T11:18:00.1585636Z               "line": 305
2026-06-18T11:18:00.1585717Z             }
2026-06-18T11:18:00.1585808Z           ]
2026-06-18T11:18:00.1585899Z         },
2026-06-18T11:18:00.1585984Z         "int": {
2026-06-18T11:18:00.1586088Z           "complete": true,
2026-06-18T11:18:00.1586183Z           "evidence": [
2026-06-18T11:18:00.1586268Z             {
2026-06-18T11:18:00.1586400Z               "path": "crates/spt/tests/live_resolve_e2e.rs",
2026-06-18T11:18:00.1586491Z               "line": 17
2026-06-18T11:18:00.1586578Z             }
2026-06-18T11:18:00.1586662Z           ]
2026-06-18T11:18:00.1586748Z         },
2026-06-18T11:18:00.1586840Z         "unit": {
2026-06-18T11:18:00.1586921Z           "complete": true,
2026-06-18T11:18:00.1587010Z           "evidence": [
2026-06-18T11:18:00.1587092Z             {
2026-06-18T11:18:00.1587216Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T11:18:00.1587302Z               "line": 358
2026-06-18T11:18:00.1587383Z             },
2026-06-18T11:18:00.1587464Z             {
2026-06-18T11:18:00.1587574Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T11:18:00.1587673Z               "line": 371
2026-06-18T11:18:00.1587756Z             },
2026-06-18T11:18:00.1587841Z             {
2026-06-18T11:18:00.1587950Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T11:18:00.1588031Z               "line": 597
2026-06-18T11:18:00.1588123Z             }
2026-06-18T11:18:00.1588203Z           ]
2026-06-18T11:18:00.1588288Z         }
2026-06-18T11:18:00.1588371Z       }
2026-06-18T11:18:00.1588452Z     },
2026-06-18T11:18:00.1588536Z     {
2026-06-18T11:18:00.1588637Z       "id": "REQ-STORE-1",
2026-06-18T11:18:00.1589543Z       "title": "spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)",
2026-06-18T11:18:00.1589644Z       "requiredStages": [
2026-06-18T11:18:00.1589736Z         "impl",
2026-06-18T11:18:00.1589939Z         "unit"
2026-06-18T11:18:00.1590017Z       ],
2026-06-18T11:18:00.1590102Z       "stages": {
2026-06-18T11:18:00.1590183Z         "doc": {
2026-06-18T11:18:00.1590288Z           "complete": false,
2026-06-18T11:18:00.1590384Z           "evidence": []
2026-06-18T11:18:00.1590460Z         },
2026-06-18T11:18:00.1590540Z         "impl": {
2026-06-18T11:18:00.1590632Z           "complete": true,
2026-06-18T11:18:00.1590727Z           "evidence": [
2026-06-18T11:18:00.1590813Z             {
2026-06-18T11:18:00.1590938Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.1591023Z               "line": 23
2026-06-18T11:18:00.1591228Z             },
2026-06-18T11:18:00.1591315Z             {
2026-06-18T11:18:00.1591441Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.1591540Z               "line": 46
2026-06-18T11:18:00.1591617Z             },
2026-06-18T11:18:00.1591706Z             {
2026-06-18T11:18:00.1591843Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.1591939Z               "line": 97
2026-06-18T11:18:00.1592021Z             },
2026-06-18T11:18:00.1592106Z             {
2026-06-18T11:18:00.1592225Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.1592307Z               "line": 125
2026-06-18T11:18:00.1592387Z             },
2026-06-18T11:18:00.1592473Z             {
2026-06-18T11:18:00.1592598Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.1592688Z               "line": 207
2026-06-18T11:18:00.1592768Z             },
2026-06-18T11:18:00.1592851Z             {
2026-06-18T11:18:00.1592978Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.1593064Z               "line": 231
2026-06-18T11:18:00.1593150Z             },
2026-06-18T11:18:00.1593228Z             {
2026-06-18T11:18:00.1593355Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.1593446Z               "line": 467
2026-06-18T11:18:00.1593533Z             },
2026-06-18T11:18:00.1593612Z             {
2026-06-18T11:18:00.1593747Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.1593828Z               "line": 25
2026-06-18T11:18:00.1593909Z             },
2026-06-18T11:18:00.1593994Z             {
2026-06-18T11:18:00.1594115Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.1594210Z               "line": 120
2026-06-18T11:18:00.1594289Z             },
2026-06-18T11:18:00.1594374Z             {
2026-06-18T11:18:00.1594494Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.1594590Z               "line": 148
2026-06-18T11:18:00.1594670Z             },
2026-06-18T11:18:00.1594756Z             {
2026-06-18T11:18:00.1594881Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.1594975Z               "line": 165
2026-06-18T11:18:00.1595051Z             },
2026-06-18T11:18:00.1595134Z             {
2026-06-18T11:18:00.1595262Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.1595361Z               "line": 180
2026-06-18T11:18:00.1595444Z             },
2026-06-18T11:18:00.1595524Z             {
2026-06-18T11:18:00.1595648Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.1595734Z               "line": 198
2026-06-18T11:18:00.1595815Z             },
2026-06-18T11:18:00.1595901Z             {
2026-06-18T11:18:00.1596025Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.1596107Z               "line": 207
2026-06-18T11:18:00.1596196Z             },
2026-06-18T11:18:00.1596277Z             {
2026-06-18T11:18:00.1596403Z               "path": "crates/spt-store/src/project.rs",
2026-06-18T11:18:00.1596501Z               "line": 16
2026-06-18T11:18:00.1596591Z             },
2026-06-18T11:18:00.1596681Z             {
2026-06-18T11:18:00.1596795Z               "path": "crates/spt-store/src/project.rs",
2026-06-18T11:18:00.1596979Z               "line": 63
2026-06-18T11:18:00.1597061Z             }
2026-06-18T11:18:00.1597152Z           ]
2026-06-18T11:18:00.1597237Z         },
2026-06-18T11:18:00.1597318Z         "int": {
2026-06-18T11:18:00.1597424Z           "complete": false,
2026-06-18T11:18:00.1597514Z           "evidence": []
2026-06-18T11:18:00.1597599Z         },
2026-06-18T11:18:00.1597691Z         "unit": {
2026-06-18T11:18:00.1597786Z           "complete": true,
2026-06-18T11:18:00.1597871Z           "evidence": [
2026-06-18T11:18:00.1597948Z             {
2026-06-18T11:18:00.1598072Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.1598238Z               "line": 584
2026-06-18T11:18:00.1598325Z             },
2026-06-18T11:18:00.1598405Z             {
2026-06-18T11:18:00.1598524Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.1598621Z               "line": 594
2026-06-18T11:18:00.1598702Z             },
2026-06-18T11:18:00.1598791Z             {
2026-06-18T11:18:00.1598911Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.1599096Z               "line": 616
2026-06-18T11:18:00.1599177Z             },
2026-06-18T11:18:00.1599265Z             {
2026-06-18T11:18:00.1599392Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.1599487Z               "line": 632
2026-06-18T11:18:00.1599582Z             },
2026-06-18T11:18:00.1599667Z             {
2026-06-18T11:18:00.1599784Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T11:18:00.1599870Z               "line": 690
2026-06-18T11:18:00.1599957Z             },
2026-06-18T11:18:00.1600052Z             {
2026-06-18T11:18:00.1600171Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.1600272Z               "line": 472
2026-06-18T11:18:00.1600358Z             },
2026-06-18T11:18:00.1600437Z             {
2026-06-18T11:18:00.1600563Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T11:18:00.1600662Z               "line": 507
2026-06-18T11:18:00.1600752Z             },
2026-06-18T11:18:00.1600829Z             {
2026-06-18T11:18:00.1600954Z               "path": "crates/spt-store/src/project.rs",
2026-06-18T11:18:00.1601035Z               "line": 120
2026-06-18T11:18:00.1601120Z             },
2026-06-18T11:18:00.1601207Z             {
2026-06-18T11:18:00.1601320Z               "path": "crates/spt-store/src/project.rs",
2026-06-18T11:18:00.1601410Z               "line": 128
2026-06-18T11:18:00.1601498Z             }
2026-06-18T11:18:00.1601579Z           ]
2026-06-18T11:18:00.1601663Z         }
2026-06-18T11:18:00.1601754Z       }
2026-06-18T11:18:00.1601846Z     },
2026-06-18T11:18:00.1601931Z     {
2026-06-18T11:18:00.1602030Z       "id": "REQ-SUBNET-1",
2026-06-18T11:18:00.1602351Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-18T11:18:00.1602457Z       "requiredStages": [
2026-06-18T11:18:00.1602543Z         "impl",
2026-06-18T11:18:00.1602624Z         "unit"
2026-06-18T11:18:00.1602709Z       ],
2026-06-18T11:18:00.1602795Z       "stages": {
2026-06-18T11:18:00.1602886Z         "doc": {
2026-06-18T11:18:00.1602980Z           "complete": false,
2026-06-18T11:18:00.1603066Z           "evidence": []
2026-06-18T11:18:00.1603144Z         },
2026-06-18T11:18:00.1603229Z         "impl": {
2026-06-18T11:18:00.1603328Z           "complete": true,
2026-06-18T11:18:00.1603411Z           "evidence": [
2026-06-18T11:18:00.1603492Z             {
2026-06-18T11:18:00.1603624Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1603730Z               "line": 281
2026-06-18T11:18:00.1603816Z             },
2026-06-18T11:18:00.1603902Z             {
2026-06-18T11:18:00.1604030Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1604122Z               "line": 651
2026-06-18T11:18:00.1604215Z             },
2026-06-18T11:18:00.1604413Z             {
2026-06-18T11:18:00.1604530Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1604626Z               "line": 3257
2026-06-18T11:18:00.1604727Z             },
2026-06-18T11:18:00.1604807Z             {
2026-06-18T11:18:00.1604911Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1605011Z               "line": 3567
2026-06-18T11:18:00.1605093Z             },
2026-06-18T11:18:00.1605187Z             {
2026-06-18T11:18:00.1605292Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1605389Z               "line": 3586
2026-06-18T11:18:00.1605479Z             },
2026-06-18T11:18:00.1605564Z             {
2026-06-18T11:18:00.1605760Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1605859Z               "line": 3650
2026-06-18T11:18:00.1605951Z             },
2026-06-18T11:18:00.1606032Z             {
2026-06-18T11:18:00.1606141Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1606236Z               "line": 3692
2026-06-18T11:18:00.1606333Z             },
2026-06-18T11:18:00.1606427Z             {
2026-06-18T11:18:00.1606527Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1606624Z               "line": 3881
2026-06-18T11:18:00.1606709Z             },
2026-06-18T11:18:00.1606794Z             {
2026-06-18T11:18:00.1606899Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1606982Z               "line": 3951
2026-06-18T11:18:00.1607070Z             },
2026-06-18T11:18:00.1607151Z             {
2026-06-18T11:18:00.1607251Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1607341Z               "line": 4175
2026-06-18T11:18:00.1607430Z             },
2026-06-18T11:18:00.1607520Z             {
2026-06-18T11:18:00.1607621Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1607712Z               "line": 4812
2026-06-18T11:18:00.1607802Z             },
2026-06-18T11:18:00.1607892Z             {
2026-06-18T11:18:00.1608003Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T11:18:00.1608102Z               "line": 418
2026-06-18T11:18:00.1608183Z             }
2026-06-18T11:18:00.1608270Z           ]
2026-06-18T11:18:00.1608351Z         },
2026-06-18T11:18:00.1608431Z         "int": {
2026-06-18T11:18:00.1608537Z           "complete": false,
2026-06-18T11:18:00.1608637Z           "evidence": []
2026-06-18T11:18:00.1608722Z         },
2026-06-18T11:18:00.1608818Z         "unit": {
2026-06-18T11:18:00.1608909Z           "complete": true,
2026-06-18T11:18:00.1609070Z           "evidence": [
2026-06-18T11:18:00.1609152Z             {
2026-06-18T11:18:00.1609280Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1609385Z               "line": 1584
2026-06-18T11:18:00.1609467Z             },
2026-06-18T11:18:00.1609557Z             {
2026-06-18T11:18:00.1609661Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1609757Z               "line": 9734
2026-06-18T11:18:00.1609844Z             },
2026-06-18T11:18:00.1609943Z             {
2026-06-18T11:18:00.1610047Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1610132Z               "line": 9904
2026-06-18T11:18:00.1610218Z             },
2026-06-18T11:18:00.1610297Z             {
2026-06-18T11:18:00.1610397Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1610488Z               "line": 9911
2026-06-18T11:18:00.1610574Z             },
2026-06-18T11:18:00.1610664Z             {
2026-06-18T11:18:00.1610764Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1610861Z               "line": 9964
2026-06-18T11:18:00.1610946Z             },
2026-06-18T11:18:00.1611045Z             {
2026-06-18T11:18:00.1611147Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1611242Z               "line": 9981
2026-06-18T11:18:00.1611336Z             },
2026-06-18T11:18:00.1611413Z             {
2026-06-18T11:18:00.1611514Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1611709Z               "line": 10011
2026-06-18T11:18:00.1611800Z             },
2026-06-18T11:18:00.1611885Z             {
2026-06-18T11:18:00.1611975Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1612072Z               "line": 10110
2026-06-18T11:18:00.1612162Z             },
2026-06-18T11:18:00.1612242Z             {
2026-06-18T11:18:00.1612343Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1612444Z               "line": 10261
2026-06-18T11:18:00.1612524Z             }
2026-06-18T11:18:00.1612604Z           ]
2026-06-18T11:18:00.1612685Z         }
2026-06-18T11:18:00.1612771Z       }
2026-06-18T11:18:00.1612869Z     },
2026-06-18T11:18:00.1613045Z     {
2026-06-18T11:18:00.1613147Z       "id": "REQ-SUBNET-2",
2026-06-18T11:18:00.1613370Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-18T11:18:00.1613475Z       "requiredStages": [
2026-06-18T11:18:00.1613559Z         "impl",
2026-06-18T11:18:00.1613646Z         "unit",
2026-06-18T11:18:00.1613737Z         "int"
2026-06-18T11:18:00.1613818Z       ],
2026-06-18T11:18:00.1613903Z       "stages": {
2026-06-18T11:18:00.1613985Z         "doc": {
2026-06-18T11:18:00.1614085Z           "complete": true,
2026-06-18T11:18:00.1614170Z           "evidence": [
2026-06-18T11:18:00.1614256Z             {
2026-06-18T11:18:00.1614418Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-18T11:18:00.1614504Z               "line": 60
2026-06-18T11:18:00.1614590Z             }
2026-06-18T11:18:00.1614667Z           ]
2026-06-18T11:18:00.1614752Z         },
2026-06-18T11:18:00.1614842Z         "impl": {
2026-06-18T11:18:00.1614944Z           "complete": true,
2026-06-18T11:18:00.1615039Z           "evidence": [
2026-06-18T11:18:00.1615119Z             {
2026-06-18T11:18:00.1615240Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T11:18:00.1615326Z               "line": 838
2026-06-18T11:18:00.1615414Z             },
2026-06-18T11:18:00.1615495Z             {
2026-06-18T11:18:00.1615619Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.1615715Z               "line": 1265
2026-06-18T11:18:00.1615795Z             },
2026-06-18T11:18:00.1615881Z             {
2026-06-18T11:18:00.1615991Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:18:00.1616100Z               "line": 633
2026-06-18T11:18:00.1616186Z             },
2026-06-18T11:18:00.1616278Z             {
2026-06-18T11:18:00.1616396Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T11:18:00.1616486Z               "line": 817
2026-06-18T11:18:00.1616574Z             },
2026-06-18T11:18:00.1616668Z             {
2026-06-18T11:18:00.1616797Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T11:18:00.1616898Z               "line": 26
2026-06-18T11:18:00.1616982Z             },
2026-06-18T11:18:00.1617068Z             {
2026-06-18T11:18:00.1617184Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T11:18:00.1617288Z               "line": 60
2026-06-18T11:18:00.1617373Z             },
2026-06-18T11:18:00.1617464Z             {
2026-06-18T11:18:00.1617575Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T11:18:00.1617669Z               "line": 168
2026-06-18T11:18:00.1617744Z             },
2026-06-18T11:18:00.1617825Z             {
2026-06-18T11:18:00.1617948Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T11:18:00.1618047Z               "line": 295
2026-06-18T11:18:00.1618133Z             },
2026-06-18T11:18:00.1618210Z             {
2026-06-18T11:18:00.1618329Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T11:18:00.1618429Z               "line": 417
2026-06-18T11:18:00.1618506Z             },
2026-06-18T11:18:00.1618596Z             {
2026-06-18T11:18:00.1618743Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T11:18:00.1618830Z               "line": 252
2026-06-18T11:18:00.1618906Z             },
2026-06-18T11:18:00.1619164Z             {
2026-06-18T11:18:00.1619277Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1619368Z               "line": 3613
2026-06-18T11:18:00.1619446Z             },
2026-06-18T11:18:00.1619535Z             {
2026-06-18T11:18:00.1619635Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1619731Z               "line": 4114
2026-06-18T11:18:00.1619817Z             },
2026-06-18T11:18:00.1619912Z             {
2026-06-18T11:18:00.1620012Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1620104Z               "line": 4743
2026-06-18T11:18:00.1620188Z             }
2026-06-18T11:18:00.1620395Z           ]
2026-06-18T11:18:00.1620484Z         },
2026-06-18T11:18:00.1620569Z         "int": {
2026-06-18T11:18:00.1620669Z           "complete": true,
2026-06-18T11:18:00.1620755Z           "evidence": [
2026-06-18T11:18:00.1620848Z             {
2026-06-18T11:18:00.1620981Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-18T11:18:00.1621072Z               "line": 22
2026-06-18T11:18:00.1621163Z             },
2026-06-18T11:18:00.1621243Z             {
2026-06-18T11:18:00.1621373Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1621454Z               "line": 644
2026-06-18T11:18:00.1621549Z             },
2026-06-18T11:18:00.1621630Z             {
2026-06-18T11:18:00.1621749Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1621835Z               "line": 886
2026-06-18T11:18:00.1621920Z             }
2026-06-18T11:18:00.1622017Z           ]
2026-06-18T11:18:00.1622092Z         },
2026-06-18T11:18:00.1622178Z         "unit": {
2026-06-18T11:18:00.1622288Z           "complete": true,
2026-06-18T11:18:00.1622374Z           "evidence": [
2026-06-18T11:18:00.1622459Z             {
2026-06-18T11:18:00.1622584Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T11:18:00.1622684Z               "line": 586
2026-06-18T11:18:00.1622774Z             },
2026-06-18T11:18:00.1622869Z             {
2026-06-18T11:18:00.1622975Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1623070Z               "line": 9774
2026-06-18T11:18:00.1623150Z             },
2026-06-18T11:18:00.1623235Z             {
2026-06-18T11:18:00.1623336Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1623420Z               "line": 10468
2026-06-18T11:18:00.1623500Z             }
2026-06-18T11:18:00.1623582Z           ]
2026-06-18T11:18:00.1623668Z         }
2026-06-18T11:18:00.1623753Z       }
2026-06-18T11:18:00.1623838Z     },
2026-06-18T11:18:00.1623920Z     {
2026-06-18T11:18:00.1624015Z       "id": "REQ-SUBNET-3",
2026-06-18T11:18:00.1624292Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-18T11:18:00.1624397Z       "requiredStages": [
2026-06-18T11:18:00.1624487Z         "impl",
2026-06-18T11:18:00.1624574Z         "unit"
2026-06-18T11:18:00.1624659Z       ],
2026-06-18T11:18:00.1624759Z       "stages": {
2026-06-18T11:18:00.1624835Z         "doc": {
2026-06-18T11:18:00.1624936Z           "complete": false,
2026-06-18T11:18:00.1625031Z           "evidence": []
2026-06-18T11:18:00.1625117Z         },
2026-06-18T11:18:00.1625208Z         "impl": {
2026-06-18T11:18:00.1625303Z           "complete": true,
2026-06-18T11:18:00.1625393Z           "evidence": [
2026-06-18T11:18:00.1625475Z             {
2026-06-18T11:18:00.1625608Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1625699Z               "line": 152
2026-06-18T11:18:00.1625785Z             },
2026-06-18T11:18:00.1625876Z             {
2026-06-18T11:18:00.1626012Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1626107Z               "line": 299
2026-06-18T11:18:00.1626184Z             },
2026-06-18T11:18:00.1626276Z             {
2026-06-18T11:18:00.1626408Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1626499Z               "line": 443
2026-06-18T11:18:00.1626689Z             },
2026-06-18T11:18:00.1626776Z             {
2026-06-18T11:18:00.1626904Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1626999Z               "line": 532
2026-06-18T11:18:00.1627085Z             },
2026-06-18T11:18:00.1627176Z             {
2026-06-18T11:18:00.1627299Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.1627380Z               "line": 125
2026-06-18T11:18:00.1627463Z             },
2026-06-18T11:18:00.1627552Z             {
2026-06-18T11:18:00.1627676Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.1627834Z               "line": 253
2026-06-18T11:18:00.1627924Z             },
2026-06-18T11:18:00.1628010Z             {
2026-06-18T11:18:00.1628140Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.1628229Z               "line": 264
2026-06-18T11:18:00.1628319Z             },
2026-06-18T11:18:00.1628400Z             {
2026-06-18T11:18:00.1628517Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.1628608Z               "line": 285
2026-06-18T11:18:00.1628693Z             },
2026-06-18T11:18:00.1628775Z             {
2026-06-18T11:18:00.1628898Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.1629071Z               "line": 621
2026-06-18T11:18:00.1629166Z             },
2026-06-18T11:18:00.1632047Z             {
2026-06-18T11:18:00.1632219Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.1632324Z               "line": 680
2026-06-18T11:18:00.1632414Z             },
2026-06-18T11:18:00.1632515Z             {
2026-06-18T11:18:00.1632652Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-18T11:18:00.1632743Z               "line": 61
2026-06-18T11:18:00.1632824Z             },
2026-06-18T11:18:00.1632911Z             {
2026-06-18T11:18:00.1633038Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-18T11:18:00.1633139Z               "line": 90
2026-06-18T11:18:00.1633216Z             },
2026-06-18T11:18:00.1633301Z             {
2026-06-18T11:18:00.1633425Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-18T11:18:00.1633507Z               "line": 125
2026-06-18T11:18:00.1633593Z             },
2026-06-18T11:18:00.1633673Z             {
2026-06-18T11:18:00.1633805Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-18T11:18:00.1633886Z               "line": 9
2026-06-18T11:18:00.1633975Z             },
2026-06-18T11:18:00.1634055Z             {
2026-06-18T11:18:00.1634156Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1634257Z               "line": 3951
2026-06-18T11:18:00.1634337Z             },
2026-06-18T11:18:00.1634423Z             {
2026-06-18T11:18:00.1634529Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T11:18:00.1634624Z               "line": 445
2026-06-18T11:18:00.1634708Z             }
2026-06-18T11:18:00.1634781Z           ]
2026-06-18T11:18:00.1634876Z         },
2026-06-18T11:18:00.1634957Z         "int": {
2026-06-18T11:18:00.1635057Z           "complete": false,
2026-06-18T11:18:00.1635153Z           "evidence": []
2026-06-18T11:18:00.1635243Z         },
2026-06-18T11:18:00.1635333Z         "unit": {
2026-06-18T11:18:00.1635425Z           "complete": true,
2026-06-18T11:18:00.1635515Z           "evidence": [
2026-06-18T11:18:00.1635601Z             {
2026-06-18T11:18:00.1635735Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1635825Z               "line": 1356
2026-06-18T11:18:00.1635915Z             },
2026-06-18T11:18:00.1635996Z             {
2026-06-18T11:18:00.1636122Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1636220Z               "line": 1713
2026-06-18T11:18:00.1636306Z             },
2026-06-18T11:18:00.1636389Z             {
2026-06-18T11:18:00.1636516Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T11:18:00.1636749Z               "line": 890
2026-06-18T11:18:00.1636840Z             },
2026-06-18T11:18:00.1636925Z             {
2026-06-18T11:18:00.1637054Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.1637145Z               "line": 991
2026-06-18T11:18:00.1637234Z             },
2026-06-18T11:18:00.1637321Z             {
2026-06-18T11:18:00.1637440Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.1637535Z               "line": 1041
2026-06-18T11:18:00.1637626Z             },
2026-06-18T11:18:00.1637713Z             {
2026-06-18T11:18:00.1637827Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.1638018Z               "line": 1100
2026-06-18T11:18:00.1638107Z             },
2026-06-18T11:18:00.1638198Z             {
2026-06-18T11:18:00.1638328Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-18T11:18:00.1638418Z               "line": 234
2026-06-18T11:18:00.1638508Z             },
2026-06-18T11:18:00.1638604Z             {
2026-06-18T11:18:00.1638733Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-18T11:18:00.1638827Z               "line": 49
2026-06-18T11:18:00.1638912Z             },
2026-06-18T11:18:00.1639106Z             {
2026-06-18T11:18:00.1639219Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1639316Z               "line": 10110
2026-06-18T11:18:00.1639397Z             },
2026-06-18T11:18:00.1639511Z             {
2026-06-18T11:18:00.1639626Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1639712Z               "line": 10216
2026-06-18T11:18:00.1639801Z             },
2026-06-18T11:18:00.1639888Z             {
2026-06-18T11:18:00.1639988Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1640069Z               "line": 10434
2026-06-18T11:18:00.1640164Z             }
2026-06-18T11:18:00.1640246Z           ]
2026-06-18T11:18:00.1640326Z         }
2026-06-18T11:18:00.1640407Z       }
2026-06-18T11:18:00.1640498Z     },
2026-06-18T11:18:00.1640590Z     {
2026-06-18T11:18:00.1640684Z       "id": "REQ-SUBNET-4",
2026-06-18T11:18:00.1640970Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-18T11:18:00.1641075Z       "requiredStages": [
2026-06-18T11:18:00.1641157Z         "impl",
2026-06-18T11:18:00.1641248Z         "unit"
2026-06-18T11:18:00.1641327Z       ],
2026-06-18T11:18:00.1641414Z       "stages": {
2026-06-18T11:18:00.1641500Z         "doc": {
2026-06-18T11:18:00.1641595Z           "complete": true,
2026-06-18T11:18:00.1641684Z           "evidence": [
2026-06-18T11:18:00.1641765Z             {
2026-06-18T11:18:00.1641931Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-18T11:18:00.1642025Z               "line": 60
2026-06-18T11:18:00.1642111Z             }
2026-06-18T11:18:00.1642197Z           ]
2026-06-18T11:18:00.1642288Z         },
2026-06-18T11:18:00.1642373Z         "impl": {
2026-06-18T11:18:00.1642459Z           "complete": true,
2026-06-18T11:18:00.1642550Z           "evidence": [
2026-06-18T11:18:00.1642635Z             {
2026-06-18T11:18:00.1642740Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1642823Z               "line": 3257
2026-06-18T11:18:00.1642908Z             },
2026-06-18T11:18:00.1642993Z             {
2026-06-18T11:18:00.1643093Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1643189Z               "line": 4710
2026-06-18T11:18:00.1643270Z             },
2026-06-18T11:18:00.1643351Z             {
2026-06-18T11:18:00.1643452Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1643541Z               "line": 4743
2026-06-18T11:18:00.1643642Z             }
2026-06-18T11:18:00.1643719Z           ]
2026-06-18T11:18:00.1643804Z         },
2026-06-18T11:18:00.1643880Z         "int": {
2026-06-18T11:18:00.1643980Z           "complete": false,
2026-06-18T11:18:00.1644062Z           "evidence": []
2026-06-18T11:18:00.1644143Z         },
2026-06-18T11:18:00.1644346Z         "unit": {
2026-06-18T11:18:00.1644427Z           "complete": true,
2026-06-18T11:18:00.1644526Z           "evidence": [
2026-06-18T11:18:00.1644606Z             {
2026-06-18T11:18:00.1644721Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1644812Z               "line": 9890
2026-06-18T11:18:00.1644897Z             },
2026-06-18T11:18:00.1644983Z             {
2026-06-18T11:18:00.1645089Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1645184Z               "line": 9964
2026-06-18T11:18:00.1645263Z             }
2026-06-18T11:18:00.1645341Z           ]
2026-06-18T11:18:00.1645422Z         }
2026-06-18T11:18:00.1645602Z       }
2026-06-18T11:18:00.1645690Z     },
2026-06-18T11:18:00.1645779Z     {
2026-06-18T11:18:00.1645874Z       "id": "REQ-SUBNET-5",
2026-06-18T11:18:00.1647025Z       "title": "Per-subnet serve-state: spt subnet detach <NAME> [--save] / attach <NAME> [--save] — daemon keeps running, stops/starts advertising + connecting for that subnet (peer pump + responder selective); --save persists the startup default in daemon config; the all-attached banner gains per-subnet states (M8 decision 6, --save renamed from --auto per decision 25 session)",
2026-06-18T11:18:00.1647132Z       "requiredStages": [
2026-06-18T11:18:00.1647218Z         "impl",
2026-06-18T11:18:00.1647299Z         "unit",
2026-06-18T11:18:00.1647386Z         "int"
2026-06-18T11:18:00.1647471Z       ],
2026-06-18T11:18:00.1647561Z       "stages": {
2026-06-18T11:18:00.1647648Z         "doc": {
2026-06-18T11:18:00.1647743Z           "complete": false,
2026-06-18T11:18:00.1647838Z           "evidence": []
2026-06-18T11:18:00.1647934Z         },
2026-06-18T11:18:00.1648019Z         "impl": {
2026-06-18T11:18:00.1648100Z           "complete": true,
2026-06-18T11:18:00.1648186Z           "evidence": [
2026-06-18T11:18:00.1648268Z             {
2026-06-18T11:18:00.1648387Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T11:18:00.1648482Z               "line": 128
2026-06-18T11:18:00.1648573Z             },
2026-06-18T11:18:00.1648649Z             {
2026-06-18T11:18:00.1648777Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T11:18:00.1648865Z               "line": 413
2026-06-18T11:18:00.1649015Z             },
2026-06-18T11:18:00.1649111Z             {
2026-06-18T11:18:00.1649241Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T11:18:00.1649335Z               "line": 74
2026-06-18T11:18:00.1649416Z             },
2026-06-18T11:18:00.1649497Z             {
2026-06-18T11:18:00.1649620Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:18:00.1649713Z               "line": 332
2026-06-18T11:18:00.1649799Z             },
2026-06-18T11:18:00.1649881Z             {
2026-06-18T11:18:00.1649990Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:18:00.1650076Z               "line": 621
2026-06-18T11:18:00.1650157Z             },
2026-06-18T11:18:00.1650238Z             {
2026-06-18T11:18:00.1650376Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-18T11:18:00.1650463Z               "line": 31
2026-06-18T11:18:00.1650548Z             },
2026-06-18T11:18:00.1650634Z             {
2026-06-18T11:18:00.1650763Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-18T11:18:00.1650845Z               "line": 50
2026-06-18T11:18:00.1650935Z             },
2026-06-18T11:18:00.1651019Z             {
2026-06-18T11:18:00.1651140Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-18T11:18:00.1651229Z               "line": 69
2026-06-18T11:18:00.1651310Z             },
2026-06-18T11:18:00.1651387Z             {
2026-06-18T11:18:00.1651512Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-18T11:18:00.1651607Z               "line": 113
2026-06-18T11:18:00.1651697Z             },
2026-06-18T11:18:00.1651780Z             {
2026-06-18T11:18:00.1651911Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-18T11:18:00.1652109Z               "line": 25
2026-06-18T11:18:00.1652188Z             },
2026-06-18T11:18:00.1652273Z             {
2026-06-18T11:18:00.1652397Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-18T11:18:00.1652482Z               "line": 34
2026-06-18T11:18:00.1652561Z             },
2026-06-18T11:18:00.1652651Z             {
2026-06-18T11:18:00.1652777Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-18T11:18:00.1652862Z               "line": 17
2026-06-18T11:18:00.1652952Z             },
2026-06-18T11:18:00.1653039Z             {
2026-06-18T11:18:00.1653139Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1653320Z               "line": 4668
2026-06-18T11:18:00.1653401Z             },
2026-06-18T11:18:00.1653487Z             {
2026-06-18T11:18:00.1653601Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T11:18:00.1653683Z               "line": 419
2026-06-18T11:18:00.1653768Z             }
2026-06-18T11:18:00.1653853Z           ]
2026-06-18T11:18:00.1653939Z         },
2026-06-18T11:18:00.1654017Z         "int": {
2026-06-18T11:18:00.1654121Z           "complete": true,
2026-06-18T11:18:00.1654216Z           "evidence": [
2026-06-18T11:18:00.1654298Z             {
2026-06-18T11:18:00.1654430Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T11:18:00.1654526Z               "line": 819
2026-06-18T11:18:00.1654608Z             }
2026-06-18T11:18:00.1654694Z           ]
2026-06-18T11:18:00.1654778Z         },
2026-06-18T11:18:00.1654872Z         "unit": {
2026-06-18T11:18:00.1654954Z           "complete": true,
2026-06-18T11:18:00.1655039Z           "evidence": [
2026-06-18T11:18:00.1655143Z             {
2026-06-18T11:18:00.1655262Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-18T11:18:00.1655348Z               "line": 341
2026-06-18T11:18:00.1655424Z             },
2026-06-18T11:18:00.1655509Z             {
2026-06-18T11:18:00.1655629Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T11:18:00.1655734Z               "line": 1115
2026-06-18T11:18:00.1655810Z             },
2026-06-18T11:18:00.1655896Z             {
2026-06-18T11:18:00.1656025Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-18T11:18:00.1656105Z               "line": 151
2026-06-18T11:18:00.1656182Z             },
2026-06-18T11:18:00.1656264Z             {
2026-06-18T11:18:00.1656377Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-18T11:18:00.1656463Z               "line": 61
2026-06-18T11:18:00.1656550Z             },
2026-06-18T11:18:00.1656640Z             {
2026-06-18T11:18:00.1656764Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-18T11:18:00.1656860Z               "line": 111
2026-06-18T11:18:00.1656941Z             },
2026-06-18T11:18:00.1657026Z             {
2026-06-18T11:18:00.1657146Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-18T11:18:00.1657227Z               "line": 138
2026-06-18T11:18:00.1657312Z             },
2026-06-18T11:18:00.1657403Z             {
2026-06-18T11:18:00.1657524Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-18T11:18:00.1657613Z               "line": 148
2026-06-18T11:18:00.1657688Z             },
2026-06-18T11:18:00.1657773Z             {
2026-06-18T11:18:00.1657879Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1657974Z               "line": 9791
2026-06-18T11:18:00.1658059Z             }
2026-06-18T11:18:00.1658146Z           ]
2026-06-18T11:18:00.1658237Z         }
2026-06-18T11:18:00.1658317Z       }
2026-06-18T11:18:00.1658402Z     },
2026-06-18T11:18:00.1658485Z     {
2026-06-18T11:18:00.1658580Z       "id": "REQ-SUBNET-6",
2026-06-18T11:18:00.1659356Z       "title": "Trust lifecycle verbs, elevation-gated: spt subnet leave <NAME> (membership exit) and spt subnet prune <node> (removes a dead identity's trust + registry rows, killing its dead dials; trust mutation = security surface, REQ-PAIR-6 gate machinery) (M8 decisions 6-7)",
2026-06-18T11:18:00.1659571Z       "requiredStages": [
2026-06-18T11:18:00.1659652Z         "impl",
2026-06-18T11:18:00.1659734Z         "unit"
2026-06-18T11:18:00.1659815Z       ],
2026-06-18T11:18:00.1659895Z       "stages": {
2026-06-18T11:18:00.1659980Z         "doc": {
2026-06-18T11:18:00.1660080Z           "complete": false,
2026-06-18T11:18:00.1660175Z           "evidence": []
2026-06-18T11:18:00.1660259Z         },
2026-06-18T11:18:00.1660349Z         "impl": {
2026-06-18T11:18:00.1660436Z           "complete": true,
2026-06-18T11:18:00.1660527Z           "evidence": [
2026-06-18T11:18:00.1660607Z             {
2026-06-18T11:18:00.1660727Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.1660936Z               "line": 254
2026-06-18T11:18:00.1661028Z             },
2026-06-18T11:18:00.1661104Z             {
2026-06-18T11:18:00.1661218Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1661303Z               "line": 4326
2026-06-18T11:18:00.1661385Z             },
2026-06-18T11:18:00.1661480Z             {
2026-06-18T11:18:00.1661575Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1661671Z               "line": 4343
2026-06-18T11:18:00.1661757Z             },
2026-06-18T11:18:00.1661843Z             {
2026-06-18T11:18:00.1661942Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1662039Z               "line": 4396
2026-06-18T11:18:00.1662128Z             },
2026-06-18T11:18:00.1662199Z             {
2026-06-18T11:18:00.1662311Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1662392Z               "line": 4419
2026-06-18T11:18:00.1662476Z             }
2026-06-18T11:18:00.1662558Z           ]
2026-06-18T11:18:00.1662649Z         },
2026-06-18T11:18:00.1662739Z         "int": {
2026-06-18T11:18:00.1662833Z           "complete": false,
2026-06-18T11:18:00.1662933Z           "evidence": []
2026-06-18T11:18:00.1663005Z         },
2026-06-18T11:18:00.1663093Z         "unit": {
2026-06-18T11:18:00.1663179Z           "complete": true,
2026-06-18T11:18:00.1663279Z           "evidence": [
2026-06-18T11:18:00.1663361Z             {
2026-06-18T11:18:00.1663464Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1663560Z               "line": 9805
2026-06-18T11:18:00.1663633Z             },
2026-06-18T11:18:00.1663719Z             {
2026-06-18T11:18:00.1663822Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1663914Z               "line": 9838
2026-06-18T11:18:00.1663994Z             },
2026-06-18T11:18:00.1664080Z             {
2026-06-18T11:18:00.1664204Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1664305Z               "line": 9847
2026-06-18T11:18:00.1664413Z             }
2026-06-18T11:18:00.1664504Z           ]
2026-06-18T11:18:00.1664587Z         }
2026-06-18T11:18:00.1664681Z       }
2026-06-18T11:18:00.1664752Z     },
2026-06-18T11:18:00.1664829Z     {
2026-06-18T11:18:00.1664925Z       "id": "REQ-SUBNET-7",
2026-06-18T11:18:00.1666509Z       "title": "Per-machine re-pair trust overwrite: registry rows carry a hashed stable machine identifier (OS machine id /etc/machine-id|MachineGuid, domain-separated SHA-256 before gossip, spt-minted persisted UUID fallback; additive serde-default field — old rows parse clean); a COMPLETED pairing ceremony presenting the same node label AND machine id as an existing trusted row evicts the superseded identity's trust + registry rows on the seed-holder and replicates the eviction; a gossiped claim alone never evicts trust (M8 decisions 13, 22)",
2026-06-18T11:18:00.1666623Z       "requiredStages": [
2026-06-18T11:18:00.1666709Z         "impl",
2026-06-18T11:18:00.1666791Z         "unit"
2026-06-18T11:18:00.1666895Z       ],
2026-06-18T11:18:00.1666985Z       "stages": {
2026-06-18T11:18:00.1667066Z         "doc": {
2026-06-18T11:18:00.1667158Z           "complete": false,
2026-06-18T11:18:00.1667248Z           "evidence": []
2026-06-18T11:18:00.1667333Z         },
2026-06-18T11:18:00.1667425Z         "impl": {
2026-06-18T11:18:00.1667586Z           "complete": true,
2026-06-18T11:18:00.1667686Z           "evidence": [
2026-06-18T11:18:00.1667764Z             {
2026-06-18T11:18:00.1667896Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-18T11:18:00.1667982Z               "line": 17
2026-06-18T11:18:00.1668064Z             },
2026-06-18T11:18:00.1668145Z             {
2026-06-18T11:18:00.1668267Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T11:18:00.1668367Z               "line": 103
2026-06-18T11:18:00.1668454Z             },
2026-06-18T11:18:00.1668534Z             {
2026-06-18T11:18:00.1668653Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T11:18:00.1668821Z               "line": 312
2026-06-18T11:18:00.1668911Z             },
2026-06-18T11:18:00.1669069Z             {
2026-06-18T11:18:00.1669211Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-18T11:18:00.1669302Z               "line": 131
2026-06-18T11:18:00.1669383Z             },
2026-06-18T11:18:00.1669478Z             {
2026-06-18T11:18:00.1669606Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1669698Z               "line": 160
2026-06-18T11:18:00.1669783Z             },
2026-06-18T11:18:00.1669874Z             {
2026-06-18T11:18:00.1669995Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1670075Z               "line": 447
2026-06-18T11:18:00.1670159Z             },
2026-06-18T11:18:00.1670241Z             {
2026-06-18T11:18:00.1670371Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1670455Z               "line": 670
2026-06-18T11:18:00.1670536Z             },
2026-06-18T11:18:00.1670631Z             {
2026-06-18T11:18:00.1670754Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1670876Z               "line": 710
2026-06-18T11:18:00.1670981Z             },
2026-06-18T11:18:00.1671078Z             {
2026-06-18T11:18:00.1671205Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1671306Z               "line": 766
2026-06-18T11:18:00.1671392Z             },
2026-06-18T11:18:00.1671477Z             {
2026-06-18T11:18:00.1671607Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T11:18:00.1671692Z               "line": 136
2026-06-18T11:18:00.1671783Z             },
2026-06-18T11:18:00.1671868Z             {
2026-06-18T11:18:00.1671998Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.1672083Z               "line": 139
2026-06-18T11:18:00.1672169Z             }
2026-06-18T11:18:00.1672250Z           ]
2026-06-18T11:18:00.1672336Z         },
2026-06-18T11:18:00.1672431Z         "int": {
2026-06-18T11:18:00.1672527Z           "complete": false,
2026-06-18T11:18:00.1672627Z           "evidence": []
2026-06-18T11:18:00.1672717Z         },
2026-06-18T11:18:00.1672803Z         "unit": {
2026-06-18T11:18:00.1672904Z           "complete": true,
2026-06-18T11:18:00.1672994Z           "evidence": [
2026-06-18T11:18:00.1673079Z             {
2026-06-18T11:18:00.1673200Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-18T11:18:00.1673295Z               "line": 136
2026-06-18T11:18:00.1673384Z             },
2026-06-18T11:18:00.1673469Z             {
2026-06-18T11:18:00.1673602Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-18T11:18:00.1673686Z               "line": 156
2026-06-18T11:18:00.1673777Z             },
2026-06-18T11:18:00.1673863Z             {
2026-06-18T11:18:00.1674010Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1674135Z               "line": 987
2026-06-18T11:18:00.1674244Z             },
2026-06-18T11:18:00.1674335Z             {
2026-06-18T11:18:00.1674450Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T11:18:00.1674545Z               "line": 1009
2026-06-18T11:18:00.1674636Z             },
2026-06-18T11:18:00.1674711Z             {
2026-06-18T11:18:00.1674841Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T11:18:00.1675041Z               "line": 1419
2026-06-18T11:18:00.1675137Z             },
2026-06-18T11:18:00.1675217Z             {
2026-06-18T11:18:00.1675331Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T11:18:00.1675428Z               "line": 1036
2026-06-18T11:18:00.1675513Z             }
2026-06-18T11:18:00.1675598Z           ]
2026-06-18T11:18:00.1675680Z         }
2026-06-18T11:18:00.1675762Z       }
2026-06-18T11:18:00.1675852Z     },
2026-06-18T11:18:00.1675941Z     {
2026-06-18T11:18:00.1676046Z       "id": "REQ-SUBNET-8",
2026-06-18T11:18:00.1677121Z       "title": "Status render honesty: zero-subnet text is daemon-aware ('No subnets registered — this node is standalone.' + daemon-running-dependent blurb, never implying messaging works while the daemon is down); hint footer prints on bare spt subnet only (status drops it); a stalled pump is surfaced in subnet status, never rendered implied-healthy (M8 decisions 11-12, 23)",
2026-06-18T11:18:00.1677331Z       "requiredStages": [
2026-06-18T11:18:00.1677417Z         "impl",
2026-06-18T11:18:00.1677507Z         "unit"
2026-06-18T11:18:00.1677588Z       ],
2026-06-18T11:18:00.1677675Z       "stages": {
2026-06-18T11:18:00.1677788Z         "doc": {
2026-06-18T11:18:00.1677889Z           "complete": false,
2026-06-18T11:18:00.1677980Z           "evidence": []
2026-06-18T11:18:00.1678052Z         },
2026-06-18T11:18:00.1678141Z         "impl": {
2026-06-18T11:18:00.1678237Z           "complete": true,
2026-06-18T11:18:00.1678324Z           "evidence": [
2026-06-18T11:18:00.1678413Z             {
2026-06-18T11:18:00.1678518Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1678624Z               "line": 3693
2026-06-18T11:18:00.1678709Z             },
2026-06-18T11:18:00.1678799Z             {
2026-06-18T11:18:00.1678903Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1679085Z               "line": 3722
2026-06-18T11:18:00.1679180Z             },
2026-06-18T11:18:00.1679256Z             {
2026-06-18T11:18:00.1679366Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1679475Z               "line": 3739
2026-06-18T11:18:00.1679562Z             },
2026-06-18T11:18:00.1679653Z             {
2026-06-18T11:18:00.1679757Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1679847Z               "line": 3762
2026-06-18T11:18:00.1679934Z             },
2026-06-18T11:18:00.1680020Z             {
2026-06-18T11:18:00.1680119Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1680215Z               "line": 4176
2026-06-18T11:18:00.1680301Z             }
2026-06-18T11:18:00.1680391Z           ]
2026-06-18T11:18:00.1680481Z         },
2026-06-18T11:18:00.1680569Z         "int": {
2026-06-18T11:18:00.1680658Z           "complete": false,
2026-06-18T11:18:00.1680744Z           "evidence": []
2026-06-18T11:18:00.1680835Z         },
2026-06-18T11:18:00.1680921Z         "unit": {
2026-06-18T11:18:00.1681025Z           "complete": true,
2026-06-18T11:18:00.1681120Z           "evidence": [
2026-06-18T11:18:00.1681206Z             {
2026-06-18T11:18:00.1681314Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1681393Z               "line": 9995
2026-06-18T11:18:00.1681475Z             },
2026-06-18T11:18:00.1681571Z             {
2026-06-18T11:18:00.1681671Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1681765Z               "line": 10011
2026-06-18T11:18:00.1681847Z             }
2026-06-18T11:18:00.1681928Z           ]
2026-06-18T11:18:00.1682018Z         }
2026-06-18T11:18:00.1682109Z       }
2026-06-18T11:18:00.1682200Z     },
2026-06-18T11:18:00.1682291Z     {
2026-06-18T11:18:00.1682390Z       "id": "REQ-TERM-1",
2026-06-18T11:18:00.1682553Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-18T11:18:00.1682648Z       "requiredStages": [
2026-06-18T11:18:00.1682734Z         "impl",
2026-06-18T11:18:00.1682825Z         "unit"
2026-06-18T11:18:00.1683015Z       ],
2026-06-18T11:18:00.1683102Z       "stages": {
2026-06-18T11:18:00.1683187Z         "doc": {
2026-06-18T11:18:00.1683272Z           "complete": false,
2026-06-18T11:18:00.1683373Z           "evidence": []
2026-06-18T11:18:00.1683455Z         },
2026-06-18T11:18:00.1683540Z         "impl": {
2026-06-18T11:18:00.1683640Z           "complete": true,
2026-06-18T11:18:00.1683736Z           "evidence": [
2026-06-18T11:18:00.1683827Z             {
2026-06-18T11:18:00.1683939Z               "path": "crates/spt-term/src/pty.rs",
2026-06-18T11:18:00.1684029Z               "line": 59
2026-06-18T11:18:00.1684120Z             },
2026-06-18T11:18:00.1684200Z             {
2026-06-18T11:18:00.1684418Z               "path": "crates/spt-term/src/pty.rs",
2026-06-18T11:18:00.1684515Z               "line": 234
2026-06-18T11:18:00.1684589Z             },
2026-06-18T11:18:00.1684666Z             {
2026-06-18T11:18:00.1684796Z               "path": "crates/spt-term/src/surface.rs",
2026-06-18T11:18:00.1684890Z               "line": 100
2026-06-18T11:18:00.1684985Z             }
2026-06-18T11:18:00.1685077Z           ]
2026-06-18T11:18:00.1685163Z         },
2026-06-18T11:18:00.1685252Z         "int": {
2026-06-18T11:18:00.1685339Z           "complete": false,
2026-06-18T11:18:00.1685435Z           "evidence": []
2026-06-18T11:18:00.1685516Z         },
2026-06-18T11:18:00.1685611Z         "unit": {
2026-06-18T11:18:00.1685707Z           "complete": true,
2026-06-18T11:18:00.1685791Z           "evidence": [
2026-06-18T11:18:00.1685877Z             {
2026-06-18T11:18:00.1685993Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-18T11:18:00.1686079Z               "line": 24
2026-06-18T11:18:00.1686173Z             },
2026-06-18T11:18:00.1686264Z             {
2026-06-18T11:18:00.1686379Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-18T11:18:00.1686463Z               "line": 56
2026-06-18T11:18:00.1686558Z             }
2026-06-18T11:18:00.1686644Z           ]
2026-06-18T11:18:00.1686743Z         }
2026-06-18T11:18:00.1686823Z       }
2026-06-18T11:18:00.1686903Z     },
2026-06-18T11:18:00.1687000Z     {
2026-06-18T11:18:00.1687095Z       "id": "REQ-TERM-2",
2026-06-18T11:18:00.1687281Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-18T11:18:00.1687376Z       "requiredStages": [
2026-06-18T11:18:00.1687476Z         "impl",
2026-06-18T11:18:00.1687552Z         "unit"
2026-06-18T11:18:00.1687639Z       ],
2026-06-18T11:18:00.1687725Z       "stages": {
2026-06-18T11:18:00.1687809Z         "doc": {
2026-06-18T11:18:00.1687911Z           "complete": false,
2026-06-18T11:18:00.1687987Z           "evidence": []
2026-06-18T11:18:00.1688086Z         },
2026-06-18T11:18:00.1688163Z         "impl": {
2026-06-18T11:18:00.1688259Z           "complete": true,
2026-06-18T11:18:00.1688348Z           "evidence": [
2026-06-18T11:18:00.1688429Z             {
2026-06-18T11:18:00.1688545Z               "path": "crates/spt-term/src/surface.rs",
2026-06-18T11:18:00.1688640Z               "line": 117
2026-06-18T11:18:00.1688726Z             },
2026-06-18T11:18:00.1688816Z             {
2026-06-18T11:18:00.1688927Z               "path": "crates/spt-term/src/surface.rs",
2026-06-18T11:18:00.1689146Z               "line": 127
2026-06-18T11:18:00.1689228Z             }
2026-06-18T11:18:00.1689316Z           ]
2026-06-18T11:18:00.1689397Z         },
2026-06-18T11:18:00.1689483Z         "int": {
2026-06-18T11:18:00.1689579Z           "complete": false,
2026-06-18T11:18:00.1689673Z           "evidence": []
2026-06-18T11:18:00.1689754Z         },
2026-06-18T11:18:00.1689845Z         "unit": {
2026-06-18T11:18:00.1689941Z           "complete": true,
2026-06-18T11:18:00.1690040Z           "evidence": [
2026-06-18T11:18:00.1690127Z             {
2026-06-18T11:18:00.1690246Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-18T11:18:00.1690350Z               "line": 46
2026-06-18T11:18:00.1690432Z             },
2026-06-18T11:18:00.1690518Z             {
2026-06-18T11:18:00.1690770Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-18T11:18:00.1690852Z               "line": 77
2026-06-18T11:18:00.1690946Z             }
2026-06-18T11:18:00.1691018Z           ]
2026-06-18T11:18:00.1691115Z         }
2026-06-18T11:18:00.1691200Z       }
2026-06-18T11:18:00.1691285Z     },
2026-06-18T11:18:00.1691376Z     {
2026-06-18T11:18:00.1691472Z       "id": "REQ-TERM-3",
2026-06-18T11:18:00.1691613Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-18T11:18:00.1691713Z       "requiredStages": [
2026-06-18T11:18:00.1691813Z         "impl",
2026-06-18T11:18:00.1691892Z         "unit"
2026-06-18T11:18:00.1691977Z       ],
2026-06-18T11:18:00.1692160Z       "stages": {
2026-06-18T11:18:00.1692240Z         "doc": {
2026-06-18T11:18:00.1692340Z           "complete": false,
2026-06-18T11:18:00.1692436Z           "evidence": []
2026-06-18T11:18:00.1692526Z         },
2026-06-18T11:18:00.1692612Z         "impl": {
2026-06-18T11:18:00.1692698Z           "complete": true,
2026-06-18T11:18:00.1692789Z           "evidence": [
2026-06-18T11:18:00.1692869Z             {
2026-06-18T11:18:00.1692989Z               "path": "crates/spt-term/src/stream.rs",
2026-06-18T11:18:00.1693075Z               "line": 71
2026-06-18T11:18:00.1693170Z             }
2026-06-18T11:18:00.1693251Z           ]
2026-06-18T11:18:00.1693332Z         },
2026-06-18T11:18:00.1693428Z         "int": {
2026-06-18T11:18:00.1693523Z           "complete": false,
2026-06-18T11:18:00.1693618Z           "evidence": []
2026-06-18T11:18:00.1693700Z         },
2026-06-18T11:18:00.1693785Z         "unit": {
2026-06-18T11:18:00.1693876Z           "complete": true,
2026-06-18T11:18:00.1693972Z           "evidence": [
2026-06-18T11:18:00.1694062Z             {
2026-06-18T11:18:00.1694171Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-18T11:18:00.1694267Z               "line": 37
2026-06-18T11:18:00.1694344Z             },
2026-06-18T11:18:00.1694438Z             {
2026-06-18T11:18:00.1694566Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-18T11:18:00.1694647Z               "line": 67
2026-06-18T11:18:00.1694732Z             }
2026-06-18T11:18:00.1694812Z           ]
2026-06-18T11:18:00.1694892Z         }
2026-06-18T11:18:00.1694978Z       }
2026-06-18T11:18:00.1695060Z     },
2026-06-18T11:18:00.1695141Z     {
2026-06-18T11:18:00.1695226Z       "id": "REQ-TERM-4",
2026-06-18T11:18:00.1695685Z       "title": "Live activity buffer (session digest): projection of normalized session logs, snapshot-pull (spt endpoint digest) + structured-delta-stream contract + api digest-entry push",
2026-06-18T11:18:00.1695784Z       "requiredStages": [
2026-06-18T11:18:00.1695884Z         "impl",
2026-06-18T11:18:00.1695971Z         "unit",
2026-06-18T11:18:00.1696066Z         "int"
2026-06-18T11:18:00.1696151Z       ],
2026-06-18T11:18:00.1696234Z       "stages": {
2026-06-18T11:18:00.1696319Z         "doc": {
2026-06-18T11:18:00.1696409Z           "complete": false,
2026-06-18T11:18:00.1696500Z           "evidence": []
2026-06-18T11:18:00.1696581Z         },
2026-06-18T11:18:00.1696671Z         "impl": {
2026-06-18T11:18:00.1696771Z           "complete": true,
2026-06-18T11:18:00.1696863Z           "evidence": [
2026-06-18T11:18:00.1696954Z             {
2026-06-18T11:18:00.1697071Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T11:18:00.1697161Z               "line": 37
2026-06-18T11:18:00.1697242Z             },
2026-06-18T11:18:00.1697336Z             {
2026-06-18T11:18:00.1697459Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-18T11:18:00.1697545Z               "line": 25
2026-06-18T11:18:00.1697632Z             },
2026-06-18T11:18:00.1697716Z             {
2026-06-18T11:18:00.1697846Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-18T11:18:00.1697936Z               "line": 114
2026-06-18T11:18:00.1698021Z             },
2026-06-18T11:18:00.1698103Z             {
2026-06-18T11:18:00.1698223Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-18T11:18:00.1698398Z               "line": 267
2026-06-18T11:18:00.1698476Z             },
2026-06-18T11:18:00.1698556Z             {
2026-06-18T11:18:00.1698675Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-18T11:18:00.1698810Z               "line": 289
2026-06-18T11:18:00.1699105Z             },
2026-06-18T11:18:00.1699233Z             {
2026-06-18T11:18:00.1699430Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-18T11:18:00.1699914Z               "line": 307
2026-06-18T11:18:00.1700224Z             },
2026-06-18T11:18:00.1704407Z             {
2026-06-18T11:18:00.1704813Z               "path": "crates/spt-store/src/history.rs",
2026-06-18T11:18:00.1705423Z               "line": 33
2026-06-18T11:18:00.1705743Z             },
2026-06-18T11:18:00.1706001Z             {
2026-06-18T11:18:00.1706321Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1706706Z               "line": 52
2026-06-18T11:18:00.1707007Z             },
2026-06-18T11:18:00.1707355Z             {
2026-06-18T11:18:00.1707678Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1708100Z               "line": 180
2026-06-18T11:18:00.1708430Z             },
2026-06-18T11:18:00.1708731Z             {
2026-06-18T11:18:00.1709193Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1709661Z               "line": 190
2026-06-18T11:18:00.1709999Z             },
2026-06-18T11:18:00.1710305Z             {
2026-06-18T11:18:00.1710665Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1711090Z               "line": 250
2026-06-18T11:18:00.1711437Z             },
2026-06-18T11:18:00.1711738Z             {
2026-06-18T11:18:00.1712095Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.1712525Z               "line": 280
2026-06-18T11:18:00.1712848Z             },
2026-06-18T11:18:00.1713155Z             {
2026-06-18T11:18:00.1713503Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.1713928Z               "line": 291
2026-06-18T11:18:00.1714233Z             },
2026-06-18T11:18:00.1714511Z             {
2026-06-18T11:18:00.1714844Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1715248Z               "line": 1179
2026-06-18T11:18:00.1715601Z             }
2026-06-18T11:18:00.1715898Z           ]
2026-06-18T11:18:00.1716157Z         },
2026-06-18T11:18:00.1716447Z         "int": {
2026-06-18T11:18:00.1716748Z           "complete": true,
2026-06-18T11:18:00.1717058Z           "evidence": [
2026-06-18T11:18:00.1717281Z             {
2026-06-18T11:18:00.1717519Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-18T11:18:00.1717820Z               "line": 18
2026-06-18T11:18:00.1718036Z             }
2026-06-18T11:18:00.1718238Z           ]
2026-06-18T11:18:00.1718433Z         },
2026-06-18T11:18:00.1718618Z         "unit": {
2026-06-18T11:18:00.1718832Z           "complete": true,
2026-06-18T11:18:00.1719199Z           "evidence": [
2026-06-18T11:18:00.1719410Z             {
2026-06-18T11:18:00.1719644Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T11:18:00.1719920Z               "line": 364
2026-06-18T11:18:00.1720129Z             },
2026-06-18T11:18:00.1720297Z             {
2026-06-18T11:18:00.1720521Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T11:18:00.1720787Z               "line": 416
2026-06-18T11:18:00.1720988Z             },
2026-06-18T11:18:00.1721163Z             {
2026-06-18T11:18:00.1721377Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T11:18:00.1721650Z               "line": 426
2026-06-18T11:18:00.1721860Z             },
2026-06-18T11:18:00.1722049Z             {
2026-06-18T11:18:00.1722283Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-18T11:18:00.1722547Z               "line": 436
2026-06-18T11:18:00.1722756Z             },
2026-06-18T11:18:00.1722941Z             {
2026-06-18T11:18:00.1723162Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-18T11:18:00.1723577Z               "line": 456
2026-06-18T11:18:00.1723787Z             },
2026-06-18T11:18:00.1723973Z             {
2026-06-18T11:18:00.1724198Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-18T11:18:00.1724474Z               "line": 478
2026-06-18T11:18:00.1724669Z             },
2026-06-18T11:18:00.1724851Z             {
2026-06-18T11:18:00.1725066Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-18T11:18:00.1725347Z               "line": 491
2026-06-18T11:18:00.1725570Z             },
2026-06-18T11:18:00.1725752Z             {
2026-06-18T11:18:00.1726081Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-18T11:18:00.1726351Z               "line": 502
2026-06-18T11:18:00.1726553Z             },
2026-06-18T11:18:00.1726750Z             {
2026-06-18T11:18:00.1726950Z               "path": "crates/spt-store/src/history.rs",
2026-06-18T11:18:00.1727221Z               "line": 108
2026-06-18T11:18:00.1727436Z             },
2026-06-18T11:18:00.1727618Z             {
2026-06-18T11:18:00.1727836Z               "path": "crates/spt-term/src/digest.rs",
2026-06-18T11:18:00.1728108Z               "line": 119
2026-06-18T11:18:00.1728323Z             },
2026-06-18T11:18:00.1728519Z             {
2026-06-18T11:18:00.1728732Z               "path": "crates/spt-term/src/digest.rs",
2026-06-18T11:18:00.1729101Z               "line": 127
2026-06-18T11:18:00.1729317Z             },
2026-06-18T11:18:00.1729507Z             {
2026-06-18T11:18:00.1729740Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1730008Z               "line": 474
2026-06-18T11:18:00.1730232Z             },
2026-06-18T11:18:00.1730422Z             {
2026-06-18T11:18:00.1730642Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1730909Z               "line": 501
2026-06-18T11:18:00.1731129Z             },
2026-06-18T11:18:00.1731314Z             {
2026-06-18T11:18:00.1731548Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1731824Z               "line": 520
2026-06-18T11:18:00.1732019Z             },
2026-06-18T11:18:00.1732201Z             {
2026-06-18T11:18:00.1732420Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1732701Z               "line": 535
2026-06-18T11:18:00.1732915Z             },
2026-06-18T11:18:00.1733102Z             {
2026-06-18T11:18:00.1733331Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1733617Z               "line": 561
2026-06-18T11:18:00.1733835Z             },
2026-06-18T11:18:00.1734035Z             {
2026-06-18T11:18:00.1734285Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1734571Z               "line": 581
2026-06-18T11:18:00.1734767Z             },
2026-06-18T11:18:00.1734958Z             {
2026-06-18T11:18:00.1735191Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1735462Z               "line": 591
2026-06-18T11:18:00.1735673Z             },
2026-06-18T11:18:00.1735854Z             {
2026-06-18T11:18:00.1736058Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1736335Z               "line": 683
2026-06-18T11:18:00.1736546Z             },
2026-06-18T11:18:00.1736745Z             {
2026-06-18T11:18:00.1736963Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.1737224Z               "line": 881
2026-06-18T11:18:00.1737419Z             },
2026-06-18T11:18:00.1737620Z             {
2026-06-18T11:18:00.1737835Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1738091Z               "line": 9562
2026-06-18T11:18:00.1738320Z             }
2026-06-18T11:18:00.1738493Z           ]
2026-06-18T11:18:00.1738659Z         }
2026-06-18T11:18:00.1738860Z       }
2026-06-18T11:18:00.1739137Z     },
2026-06-18T11:18:00.1739330Z     {
2026-06-18T11:18:00.1739529Z       "id": "REQ-TERM-5",
2026-06-18T11:18:00.1741140Z       "title": "Adapter-declared digest extractor seam: a `[digest]` manifest section declaring an imperative extractor (native harness log -> the {role,text,tool,ts} contract; defaults to the [history] source files with an own-source escape hatch), `api digest-entry` push fallback, register-time validation of the section, adapter-declared presentation defaults (window depth, arg-truncation, sprint-collapse) that any consumer may override, and a `spt adapter digest-proof` author tool plus runtime skip-diagnostics (no silent drop). Reverses M9's no-manifest-seam stance; no declarative DSL.",
2026-06-18T11:18:00.1742874Z       "requiredStages": [
2026-06-18T11:18:00.1743080Z         "doc",
2026-06-18T11:18:00.1743371Z         "impl",
2026-06-18T11:18:00.1743561Z         "unit",
2026-06-18T11:18:00.1743757Z         "int"
2026-06-18T11:18:00.1743929Z       ],
2026-06-18T11:18:00.1744124Z       "stages": {
2026-06-18T11:18:00.1744306Z         "doc": {
2026-06-18T11:18:00.1744518Z           "complete": true,
2026-06-18T11:18:00.1744750Z           "evidence": [
2026-06-18T11:18:00.1744965Z             {
2026-06-18T11:18:00.1745169Z               "path": "docs/MANIFEST.md",
2026-06-18T11:18:00.1745436Z               "line": 189
2026-06-18T11:18:00.1745656Z             }
2026-06-18T11:18:00.1745847Z           ]
2026-06-18T11:18:00.1746037Z         },
2026-06-18T11:18:00.1746229Z         "impl": {
2026-06-18T11:18:00.1746428Z           "complete": true,
2026-06-18T11:18:00.1746643Z           "evidence": [
2026-06-18T11:18:00.1746859Z             {
2026-06-18T11:18:00.1747102Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T11:18:00.1747380Z               "line": 75
2026-06-18T11:18:00.1747593Z             },
2026-06-18T11:18:00.1747794Z             {
2026-06-18T11:18:00.1748012Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T11:18:00.1748279Z               "line": 131
2026-06-18T11:18:00.1748490Z             },
2026-06-18T11:18:00.1748680Z             {
2026-06-18T11:18:00.1748885Z               "path": "crates/spt-live/src/digest.rs",
2026-06-18T11:18:00.1749267Z               "line": 22
2026-06-18T11:18:00.1749495Z             },
2026-06-18T11:18:00.1749693Z             {
2026-06-18T11:18:00.1749909Z               "path": "crates/spt-live/src/digest.rs",
2026-06-18T11:18:00.1750179Z               "line": 87
2026-06-18T11:18:00.1750385Z             },
2026-06-18T11:18:00.1750579Z             {
2026-06-18T11:18:00.1750808Z               "path": "crates/spt-term/src/digest.rs",
2026-06-18T11:18:00.1751071Z               "line": 30
2026-06-18T11:18:00.1751281Z             },
2026-06-18T11:18:00.1751480Z             {
2026-06-18T11:18:00.1751709Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1751991Z               "line": 103
2026-06-18T11:18:00.1752206Z             },
2026-06-18T11:18:00.1752386Z             {
2026-06-18T11:18:00.1752607Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1752896Z               "line": 167
2026-06-18T11:18:00.1753114Z             },
2026-06-18T11:18:00.1753321Z             {
2026-06-18T11:18:00.1753531Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1753806Z               "line": 434
2026-06-18T11:18:00.1754021Z             },
2026-06-18T11:18:00.1754212Z             {
2026-06-18T11:18:00.1754432Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1754703Z               "line": 5489
2026-06-18T11:18:00.1754912Z             },
2026-06-18T11:18:00.1755117Z             {
2026-06-18T11:18:00.1755334Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1755596Z               "line": 5796
2026-06-18T11:18:00.1755807Z             }
2026-06-18T11:18:00.1755996Z           ]
2026-06-18T11:18:00.1756178Z         },
2026-06-18T11:18:00.1756359Z         "int": {
2026-06-18T11:18:00.1756574Z           "complete": true,
2026-06-18T11:18:00.1756803Z           "evidence": [
2026-06-18T11:18:00.1757003Z             {
2026-06-18T11:18:00.1757245Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-18T11:18:00.1757700Z               "line": 17
2026-06-18T11:18:00.1757917Z             }
2026-06-18T11:18:00.1758116Z           ]
2026-06-18T11:18:00.1758287Z         },
2026-06-18T11:18:00.1758477Z         "unit": {
2026-06-18T11:18:00.1758693Z           "complete": true,
2026-06-18T11:18:00.1758926Z           "evidence": [
2026-06-18T11:18:00.1759265Z             {
2026-06-18T11:18:00.1759502Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T11:18:00.1759784Z               "line": 375
2026-06-18T11:18:00.1759994Z             },
2026-06-18T11:18:00.1760200Z             {
2026-06-18T11:18:00.1760507Z               "path": "crates/spt-live/src/digest.rs",
2026-06-18T11:18:00.1760767Z               "line": 162
2026-06-18T11:18:00.1760974Z             },
2026-06-18T11:18:00.1761149Z             {
2026-06-18T11:18:00.1761368Z               "path": "crates/spt-live/src/digest.rs",
2026-06-18T11:18:00.1761631Z               "line": 179
2026-06-18T11:18:00.1761856Z             },
2026-06-18T11:18:00.1762040Z             {
2026-06-18T11:18:00.1762255Z               "path": "crates/spt-live/src/digest.rs",
2026-06-18T11:18:00.1762537Z               "line": 201
2026-06-18T11:18:00.1762752Z             },
2026-06-18T11:18:00.1762922Z             {
2026-06-18T11:18:00.1763134Z               "path": "crates/spt-live/src/digest.rs",
2026-06-18T11:18:00.1763399Z               "line": 212
2026-06-18T11:18:00.1763613Z             },
2026-06-18T11:18:00.1763805Z             {
2026-06-18T11:18:00.1764033Z               "path": "crates/spt-live/src/digest.rs",
2026-06-18T11:18:00.1764300Z               "line": 223
2026-06-18T11:18:00.1764519Z             },
2026-06-18T11:18:00.1764711Z             {
2026-06-18T11:18:00.1764939Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.1765230Z               "line": 1322
2026-06-18T11:18:00.1765435Z             },
2026-06-18T11:18:00.1765634Z             {
2026-06-18T11:18:00.1765874Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.1766156Z               "line": 1365
2026-06-18T11:18:00.1766372Z             },
2026-06-18T11:18:00.1766566Z             {
2026-06-18T11:18:00.1766786Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1767067Z               "line": 606
2026-06-18T11:18:00.1767287Z             },
2026-06-18T11:18:00.1767477Z             {
2026-06-18T11:18:00.1767706Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1767983Z               "line": 634
2026-06-18T11:18:00.1768207Z             },
2026-06-18T11:18:00.1768396Z             {
2026-06-18T11:18:00.1768634Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1768904Z               "line": 646
2026-06-18T11:18:00.1769220Z             },
2026-06-18T11:18:00.1769423Z             {
2026-06-18T11:18:00.1769644Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1769911Z               "line": 669
2026-06-18T11:18:00.1770150Z             },
2026-06-18T11:18:00.1770325Z             {
2026-06-18T11:18:00.1770531Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1770793Z               "line": 8273
2026-06-18T11:18:00.1771057Z             },
2026-06-18T11:18:00.1771247Z             {
2026-06-18T11:18:00.1771457Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1771714Z               "line": 8331
2026-06-18T11:18:00.1771937Z             }
2026-06-18T11:18:00.1772125Z           ]
2026-06-18T11:18:00.1772314Z         }
2026-06-18T11:18:00.1772496Z       }
2026-06-18T11:18:00.1772677Z     },
2026-06-18T11:18:00.1772859Z     {
2026-06-18T11:18:00.1773060Z       "id": "REQ-TERM-6",
2026-06-18T11:18:00.1774346Z       "title": "Thread-spanning digest across session boundaries: a per-endpoint session ledger (`<perch>/sessions.log`) appended at first bind and by `api boundary` on `/clear`|`/compact` session rotation, the digest enumerating the last K sessions so its rolling window bridges a boundary, and a distinctive in-timeline boundary marker (DigestEntry::Boundary). The digest follows the live-agent thread, not a single session.",
2026-06-18T11:18:00.1775685Z       "requiredStages": [
2026-06-18T11:18:00.1775915Z         "impl",
2026-06-18T11:18:00.1776113Z         "unit",
2026-06-18T11:18:00.1776308Z         "int"
2026-06-18T11:18:00.1776506Z       ],
2026-06-18T11:18:00.1776697Z       "stages": {
2026-06-18T11:18:00.1776903Z         "doc": {
2026-06-18T11:18:00.1777121Z           "complete": false,
2026-06-18T11:18:00.1777355Z           "evidence": []
2026-06-18T11:18:00.1777566Z         },
2026-06-18T11:18:00.1777755Z         "impl": {
2026-06-18T11:18:00.1778056Z           "complete": true,
2026-06-18T11:18:00.1778276Z           "evidence": [
2026-06-18T11:18:00.1778482Z             {
2026-06-18T11:18:00.1778700Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T11:18:00.1779066Z               "line": 132
2026-06-18T11:18:00.1779274Z             },
2026-06-18T11:18:00.1779489Z             {
2026-06-18T11:18:00.1779712Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T11:18:00.1779993Z               "line": 187
2026-06-18T11:18:00.1780199Z             },
2026-06-18T11:18:00.1780380Z             {
2026-06-18T11:18:00.1780594Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-18T11:18:00.1780870Z               "line": 17
2026-06-18T11:18:00.1781086Z             },
2026-06-18T11:18:00.1781281Z             {
2026-06-18T11:18:00.1781504Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-18T11:18:00.1781784Z               "line": 96
2026-06-18T11:18:00.1781993Z             },
2026-06-18T11:18:00.1782192Z             {
2026-06-18T11:18:00.1782427Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1782690Z               "line": 319
2026-06-18T11:18:00.1782913Z             },
2026-06-18T11:18:00.1783099Z             {
2026-06-18T11:18:00.1783320Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1783615Z               "line": 396
2026-06-18T11:18:00.1783833Z             }
2026-06-18T11:18:00.1784024Z           ]
2026-06-18T11:18:00.1784216Z         },
2026-06-18T11:18:00.1784400Z         "int": {
2026-06-18T11:18:00.1784620Z           "complete": true,
2026-06-18T11:18:00.1784853Z           "evidence": [
2026-06-18T11:18:00.1785048Z             {
2026-06-18T11:18:00.1785301Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-18T11:18:00.1785606Z               "line": 18
2026-06-18T11:18:00.1785816Z             }
2026-06-18T11:18:00.1786011Z           ]
2026-06-18T11:18:00.1790092Z         },
2026-06-18T11:18:00.1790325Z         "unit": {
2026-06-18T11:18:00.1790539Z           "complete": true,
2026-06-18T11:18:00.1790778Z           "evidence": [
2026-06-18T11:18:00.1790988Z             {
2026-06-18T11:18:00.1791236Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-18T11:18:00.1791521Z               "line": 126
2026-06-18T11:18:00.1791736Z             },
2026-06-18T11:18:00.1791928Z             {
2026-06-18T11:18:00.1792150Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-18T11:18:00.1792433Z               "line": 141
2026-06-18T11:18:00.1792649Z             },
2026-06-18T11:18:00.1792843Z             {
2026-06-18T11:18:00.1793063Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-18T11:18:00.1793321Z               "line": 157
2026-06-18T11:18:00.1793526Z             },
2026-06-18T11:18:00.1793721Z             {
2026-06-18T11:18:00.1793950Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-18T11:18:00.1794199Z               "line": 175
2026-06-18T11:18:00.1794418Z             },
2026-06-18T11:18:00.1794608Z             {
2026-06-18T11:18:00.1794838Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1795117Z               "line": 738
2026-06-18T11:18:00.1795317Z             },
2026-06-18T11:18:00.1795504Z             {
2026-06-18T11:18:00.1795866Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1796143Z               "line": 759
2026-06-18T11:18:00.1796367Z             },
2026-06-18T11:18:00.1796553Z             {
2026-06-18T11:18:00.1796759Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T11:18:00.1797021Z               "line": 722
2026-06-18T11:18:00.1797229Z             }
2026-06-18T11:18:00.1797414Z           ]
2026-06-18T11:18:00.1797583Z         }
2026-06-18T11:18:00.1797771Z       }
2026-06-18T11:18:00.1797956Z     },
2026-06-18T11:18:00.1798137Z     {
2026-06-18T11:18:00.1798334Z       "id": "REQ-TERM-7",
2026-06-18T11:18:00.1799734Z       "title": "Two-origin digest merge: spt-owned context-injection entries (psyche_download | echo_mirror | owl_message) appended by spt to the endpoint `digest.log`, timestamp-interleaved with the adapter's extracted activity records into one ordered timeline, via a distinct context-injection record category. Data model only this milestone; GUI collapse/expand and the echo-reads-digest delta loop are deferred to the surfaces that consume them.",
2026-06-18T11:18:00.1801137Z       "requiredStages": [
2026-06-18T11:18:00.1801362Z         "impl",
2026-06-18T11:18:00.1801553Z         "unit",
2026-06-18T11:18:00.1801747Z         "int"
2026-06-18T11:18:00.1801939Z       ],
2026-06-18T11:18:00.1802130Z       "stages": {
2026-06-18T11:18:00.1802324Z         "doc": {
2026-06-18T11:18:00.1802526Z           "complete": false,
2026-06-18T11:18:00.1802762Z           "evidence": []
2026-06-18T11:18:00.1802970Z         },
2026-06-18T11:18:00.1803156Z         "impl": {
2026-06-18T11:18:00.1803365Z           "complete": true,
2026-06-18T11:18:00.1803600Z           "evidence": [
2026-06-18T11:18:00.1803810Z             {
2026-06-18T11:18:00.1804048Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T11:18:00.1804329Z               "line": 133
2026-06-18T11:18:00.1804553Z             },
2026-06-18T11:18:00.1804730Z             {
2026-06-18T11:18:00.1804958Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T11:18:00.1805216Z               "line": 326
2026-06-18T11:18:00.1805422Z             },
2026-06-18T11:18:00.1805615Z             {
2026-06-18T11:18:00.1805830Z               "path": "crates/spt-live/src/inject.rs",
2026-06-18T11:18:00.1806087Z               "line": 15
2026-06-18T11:18:00.1806303Z             },
2026-06-18T11:18:00.1806488Z             {
2026-06-18T11:18:00.1806713Z               "path": "crates/spt-live/src/inject.rs",
2026-06-18T11:18:00.1806956Z               "line": 32
2026-06-18T11:18:00.1807169Z             },
2026-06-18T11:18:00.1807361Z             {
2026-06-18T11:18:00.1807576Z               "path": "crates/spt-store/src/history.rs",
2026-06-18T11:18:00.1807845Z               "line": 49
2026-06-18T11:18:00.1808058Z             },
2026-06-18T11:18:00.1808254Z             {
2026-06-18T11:18:00.1808487Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1808754Z               "line": 286
2026-06-18T11:18:00.1809035Z             },
2026-06-18T11:18:00.1809218Z             {
2026-06-18T11:18:00.1809460Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1809736Z               "line": 320
2026-06-18T11:18:00.1809951Z             }
2026-06-18T11:18:00.1810119Z           ]
2026-06-18T11:18:00.1810308Z         },
2026-06-18T11:18:00.1810496Z         "int": {
2026-06-18T11:18:00.1810684Z           "complete": true,
2026-06-18T11:18:00.1810911Z           "evidence": [
2026-06-18T11:18:00.1811121Z             {
2026-06-18T11:18:00.1811363Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-18T11:18:00.1811673Z               "line": 19
2026-06-18T11:18:00.1811889Z             }
2026-06-18T11:18:00.1812075Z           ]
2026-06-18T11:18:00.1812260Z         },
2026-06-18T11:18:00.1812442Z         "unit": {
2026-06-18T11:18:00.1812637Z           "complete": true,
2026-06-18T11:18:00.1812856Z           "evidence": [
2026-06-18T11:18:00.1813067Z             {
2026-06-18T11:18:00.1813418Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T11:18:00.1813693Z               "line": 455
2026-06-18T11:18:00.1813892Z             },
2026-06-18T11:18:00.1814079Z             {
2026-06-18T11:18:00.1814303Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T11:18:00.1814569Z               "line": 566
2026-06-18T11:18:00.1814760Z             },
2026-06-18T11:18:00.1814952Z             {
2026-06-18T11:18:00.1815161Z               "path": "crates/spt-live/src/inject.rs",
2026-06-18T11:18:00.1815418Z               "line": 58
2026-06-18T11:18:00.1815615Z             },
2026-06-18T11:18:00.1815795Z             {
2026-06-18T11:18:00.1816137Z               "path": "crates/spt-live/src/inject.rs",
2026-06-18T11:18:00.1816400Z               "line": 77
2026-06-18T11:18:00.1816606Z             },
2026-06-18T11:18:00.1816780Z             {
2026-06-18T11:18:00.1817006Z               "path": "crates/spt-live/src/inject.rs",
2026-06-18T11:18:00.1817292Z               "line": 87
2026-06-18T11:18:00.1817516Z             },
2026-06-18T11:18:00.1817701Z             {
2026-06-18T11:18:00.1817931Z               "path": "crates/spt-store/src/history.rs",
2026-06-18T11:18:00.1818199Z               "line": 94
2026-06-18T11:18:00.1818405Z             },
2026-06-18T11:18:00.1818591Z             {
2026-06-18T11:18:00.1818823Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1819177Z               "line": 691
2026-06-18T11:18:00.1819390Z             },
2026-06-18T11:18:00.1819577Z             {
2026-06-18T11:18:00.1819811Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T11:18:00.1820088Z               "line": 716
2026-06-18T11:18:00.1820296Z             }
2026-06-18T11:18:00.1820487Z           ]
2026-06-18T11:18:00.1820674Z         }
2026-06-18T11:18:00.1820854Z       }
2026-06-18T11:18:00.1821042Z     },
2026-06-18T11:18:00.1821221Z     {
2026-06-18T11:18:00.1821416Z       "id": "REQ-UPD-1",
2026-06-18T11:18:00.1821662Z       "title": "Peer-propagated update over P2P",
2026-06-18T11:18:00.1821933Z       "requiredStages": [
2026-06-18T11:18:00.1822134Z         "impl",
2026-06-18T11:18:00.1822335Z         "unit",
2026-06-18T11:18:00.1822524Z         "int"
2026-06-18T11:18:00.1822716Z       ],
2026-06-18T11:18:00.1822901Z       "stages": {
2026-06-18T11:18:00.1823092Z         "doc": {
2026-06-18T11:18:00.1823284Z           "complete": false,
2026-06-18T11:18:00.1823521Z           "evidence": []
2026-06-18T11:18:00.1823717Z         },
2026-06-18T11:18:00.1823897Z         "impl": {
2026-06-18T11:18:00.1824100Z           "complete": true,
2026-06-18T11:18:00.1824329Z           "evidence": [
2026-06-18T11:18:00.1824548Z             {
2026-06-18T11:18:00.1824776Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T11:18:00.1825058Z               "line": 28
2026-06-18T11:18:00.1825273Z             },
2026-06-18T11:18:00.1825463Z             {
2026-06-18T11:18:00.1825683Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T11:18:00.1825969Z               "line": 103
2026-06-18T11:18:00.1826180Z             },
2026-06-18T11:18:00.1826365Z             {
2026-06-18T11:18:00.1826593Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T11:18:00.1826870Z               "line": 342
2026-06-18T11:18:00.1827074Z             },
2026-06-18T11:18:00.1827247Z             {
2026-06-18T11:18:00.1827466Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1827727Z               "line": 22
2026-06-18T11:18:00.1827937Z             },
2026-06-18T11:18:00.1828129Z             {
2026-06-18T11:18:00.1828357Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1828628Z               "line": 207
2026-06-18T11:18:00.1828838Z             },
2026-06-18T11:18:00.1829104Z             {
2026-06-18T11:18:00.1829341Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1829621Z               "line": 283
2026-06-18T11:18:00.1829841Z             },
2026-06-18T11:18:00.1830156Z             {
2026-06-18T11:18:00.1830376Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1830648Z               "line": 340
2026-06-18T11:18:00.1830852Z             },
2026-06-18T11:18:00.1831029Z             {
2026-06-18T11:18:00.1831234Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-18T11:18:00.1831505Z               "line": 37
2026-06-18T11:18:00.1831715Z             }
2026-06-18T11:18:00.1831909Z           ]
2026-06-18T11:18:00.1831990Z         },
2026-06-18T11:18:00.1832083Z         "int": {
2026-06-18T11:18:00.1832178Z           "complete": true,
2026-06-18T11:18:00.1832265Z           "evidence": [
2026-06-18T11:18:00.1832450Z             {
2026-06-18T11:18:00.1832576Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T11:18:00.1832676Z               "line": 207
2026-06-18T11:18:00.1832760Z             },
2026-06-18T11:18:00.1832857Z             {
2026-06-18T11:18:00.1832980Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T11:18:00.1833075Z               "line": 1081
2026-06-18T11:18:00.1833152Z             }
2026-06-18T11:18:00.1833234Z           ]
2026-06-18T11:18:00.1833318Z         },
2026-06-18T11:18:00.1833404Z         "unit": {
2026-06-18T11:18:00.1833505Z           "complete": true,
2026-06-18T11:18:00.1833586Z           "evidence": [
2026-06-18T11:18:00.1833671Z             {
2026-06-18T11:18:00.1833791Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1833878Z               "line": 490
2026-06-18T11:18:00.1833971Z             },
2026-06-18T11:18:00.1834053Z             {
2026-06-18T11:18:00.1834183Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1834277Z               "line": 616
2026-06-18T11:18:00.1834367Z             },
2026-06-18T11:18:00.1834452Z             {
2026-06-18T11:18:00.1834580Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-18T11:18:00.1834679Z               "line": 277
2026-06-18T11:18:00.1834765Z             },
2026-06-18T11:18:00.1834846Z             {
2026-06-18T11:18:00.1834970Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-18T11:18:00.1835055Z               "line": 124
2026-06-18T11:18:00.1835142Z             },
2026-06-18T11:18:00.1835223Z             {
2026-06-18T11:18:00.1835341Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-18T11:18:00.1835423Z               "line": 200
2026-06-18T11:18:00.1835514Z             }
2026-06-18T11:18:00.1835599Z           ]
2026-06-18T11:18:00.1835680Z         }
2026-06-18T11:18:00.1835772Z       }
2026-06-18T11:18:00.1835847Z     },
2026-06-18T11:18:00.1835947Z     {
2026-06-18T11:18:00.1836043Z       "id": "REQ-UPD-2",
2026-06-18T11:18:00.1836195Z       "title": "All binaries signature-verified before handoff",
2026-06-18T11:18:00.1836291Z       "requiredStages": [
2026-06-18T11:18:00.1836382Z         "impl",
2026-06-18T11:18:00.1836477Z         "unit"
2026-06-18T11:18:00.1836557Z       ],
2026-06-18T11:18:00.1836658Z       "stages": {
2026-06-18T11:18:00.1836745Z         "doc": {
2026-06-18T11:18:00.1836843Z           "complete": false,
2026-06-18T11:18:00.1836939Z           "evidence": []
2026-06-18T11:18:00.1837016Z         },
2026-06-18T11:18:00.1837107Z         "impl": {
2026-06-18T11:18:00.1837201Z           "complete": true,
2026-06-18T11:18:00.1837295Z           "evidence": [
2026-06-18T11:18:00.1837373Z             {
2026-06-18T11:18:00.1837501Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T11:18:00.1837586Z               "line": 343
2026-06-18T11:18:00.1837668Z             },
2026-06-18T11:18:00.1837759Z             {
2026-06-18T11:18:00.1837887Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T11:18:00.1837983Z               "line": 476
2026-06-18T11:18:00.1838064Z             },
2026-06-18T11:18:00.1838145Z             {
2026-06-18T11:18:00.1838264Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1838431Z               "line": 29
2026-06-18T11:18:00.1838521Z             },
2026-06-18T11:18:00.1838602Z             {
2026-06-18T11:18:00.1838717Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1838803Z               "line": 271
2026-06-18T11:18:00.1838898Z             },
2026-06-18T11:18:00.1839042Z             {
2026-06-18T11:18:00.1839179Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1839276Z               "line": 288
2026-06-18T11:18:00.1839356Z             },
2026-06-18T11:18:00.1839441Z             {
2026-06-18T11:18:00.1839554Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1839744Z               "line": 408
2026-06-18T11:18:00.1839838Z             },
2026-06-18T11:18:00.1839925Z             {
2026-06-18T11:18:00.1840035Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1840129Z               "line": 558
2026-06-18T11:18:00.1840215Z             },
2026-06-18T11:18:00.1840302Z             {
2026-06-18T11:18:00.1840434Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T11:18:00.1840530Z               "line": 155
2026-06-18T11:18:00.1840617Z             }
2026-06-18T11:18:00.1840697Z           ]
2026-06-18T11:18:00.1840782Z         },
2026-06-18T11:18:00.1840870Z         "int": {
2026-06-18T11:18:00.1840964Z           "complete": false,
2026-06-18T11:18:00.1841059Z           "evidence": []
2026-06-18T11:18:00.1841140Z         },
2026-06-18T11:18:00.1841222Z         "unit": {
2026-06-18T11:18:00.1841321Z           "complete": true,
2026-06-18T11:18:00.1841412Z           "evidence": [
2026-06-18T11:18:00.1841499Z             {
2026-06-18T11:18:00.1841617Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1841712Z               "line": 750
2026-06-18T11:18:00.1841804Z             },
2026-06-18T11:18:00.1841885Z             {
2026-06-18T11:18:00.1842003Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1842090Z               "line": 811
2026-06-18T11:18:00.1842181Z             },
2026-06-18T11:18:00.1842266Z             {
2026-06-18T11:18:00.1842379Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1842479Z               "line": 825
2026-06-18T11:18:00.1842555Z             },
2026-06-18T11:18:00.1842648Z             {
2026-06-18T11:18:00.1842758Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1842859Z               "line": 841
2026-06-18T11:18:00.1842931Z             },
2026-06-18T11:18:00.1843025Z             {
2026-06-18T11:18:00.1843136Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1843221Z               "line": 932
2026-06-18T11:18:00.1843315Z             },
2026-06-18T11:18:00.1843407Z             {
2026-06-18T11:18:00.1843531Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T11:18:00.1843612Z               "line": 414
2026-06-18T11:18:00.1843697Z             },
2026-06-18T11:18:00.1843775Z             {
2026-06-18T11:18:00.1843903Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T11:18:00.1843993Z               "line": 427
2026-06-18T11:18:00.1844075Z             },
2026-06-18T11:18:00.1844160Z             {
2026-06-18T11:18:00.1844284Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-18T11:18:00.1844380Z               "line": 410
2026-06-18T11:18:00.1844471Z             }
2026-06-18T11:18:00.1844555Z           ]
2026-06-18T11:18:00.1844647Z         }
2026-06-18T11:18:00.1844724Z       }
2026-06-18T11:18:00.1844804Z     },
2026-06-18T11:18:00.1844889Z     {
2026-06-18T11:18:00.1844983Z       "id": "REQ-UPD-3",
2026-06-18T11:18:00.1845154Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-18T11:18:00.1845253Z       "requiredStages": [
2026-06-18T11:18:00.1845348Z         "impl",
2026-06-18T11:18:00.1845426Z         "unit",
2026-06-18T11:18:00.1845506Z         "int"
2026-06-18T11:18:00.1845587Z       ],
2026-06-18T11:18:00.1845683Z       "stages": {
2026-06-18T11:18:00.1845873Z         "doc": {
2026-06-18T11:18:00.1845969Z           "complete": false,
2026-06-18T11:18:00.1846069Z           "evidence": []
2026-06-18T11:18:00.1846155Z         },
2026-06-18T11:18:00.1846249Z         "impl": {
2026-06-18T11:18:00.1846346Z           "complete": true,
2026-06-18T11:18:00.1846436Z           "evidence": [
2026-06-18T11:18:00.1846526Z             {
2026-06-18T11:18:00.1846647Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T11:18:00.1846741Z               "line": 40
2026-06-18T11:18:00.1846822Z             },
2026-06-18T11:18:00.1846918Z             {
2026-06-18T11:18:00.1847037Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T11:18:00.1847203Z               "line": 87
2026-06-18T11:18:00.1847296Z             },
2026-06-18T11:18:00.1847370Z             {
2026-06-18T11:18:00.1847495Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T11:18:00.1847586Z               "line": 994
2026-06-18T11:18:00.1847685Z             },
2026-06-18T11:18:00.1847770Z             {
2026-06-18T11:18:00.1847889Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T11:18:00.1847985Z               "line": 1160
2026-06-18T11:18:00.1848061Z             },
2026-06-18T11:18:00.1848141Z             {
2026-06-18T11:18:00.1848257Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T11:18:00.1848352Z               "line": 26
2026-06-18T11:18:00.1848442Z             },
2026-06-18T11:18:00.1848519Z             {
2026-06-18T11:18:00.1848633Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T11:18:00.1848714Z               "line": 114
2026-06-18T11:18:00.1848814Z             },
2026-06-18T11:18:00.1848901Z             {
2026-06-18T11:18:00.1849095Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T11:18:00.1849182Z               "line": 246
2026-06-18T11:18:00.1849268Z             },
2026-06-18T11:18:00.1849358Z             {
2026-06-18T11:18:00.1849458Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1849564Z               "line": 2313
2026-06-18T11:18:00.1849644Z             }
2026-06-18T11:18:00.1849720Z           ]
2026-06-18T11:18:00.1849802Z         },
2026-06-18T11:18:00.1849883Z         "int": {
2026-06-18T11:18:00.1849982Z           "complete": true,
2026-06-18T11:18:00.1850077Z           "evidence": [
2026-06-18T11:18:00.1850153Z             {
2026-06-18T11:18:00.1850276Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-18T11:18:00.1850375Z               "line": 58
2026-06-18T11:18:00.1850456Z             }
2026-06-18T11:18:00.1850538Z           ]
2026-06-18T11:18:00.1850633Z         },
2026-06-18T11:18:00.1850732Z         "unit": {
2026-06-18T11:18:00.1850828Z           "complete": true,
2026-06-18T11:18:00.1850914Z           "evidence": [
2026-06-18T11:18:00.1851013Z             {
2026-06-18T11:18:00.1851134Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T11:18:00.1851219Z               "line": 532
2026-06-18T11:18:00.1851305Z             },
2026-06-18T11:18:00.1851391Z             {
2026-06-18T11:18:00.1851520Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T11:18:00.1851615Z               "line": 584
2026-06-18T11:18:00.1851696Z             },
2026-06-18T11:18:00.1851792Z             {
2026-06-18T11:18:00.1851915Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T11:18:00.1852010Z               "line": 652
2026-06-18T11:18:00.1852097Z             },
2026-06-18T11:18:00.1852187Z             {
2026-06-18T11:18:00.1852301Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T11:18:00.1852403Z               "line": 1102
2026-06-18T11:18:00.1852497Z             },
2026-06-18T11:18:00.1852578Z             {
2026-06-18T11:18:00.1852698Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T11:18:00.1852779Z               "line": 271
2026-06-18T11:18:00.1852863Z             },
2026-06-18T11:18:00.1852948Z             {
2026-06-18T11:18:00.1853180Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T11:18:00.1853280Z               "line": 295
2026-06-18T11:18:00.1853361Z             },
2026-06-18T11:18:00.1853452Z             {
2026-06-18T11:18:00.1853570Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T11:18:00.1853647Z               "line": 316
2026-06-18T11:18:00.1853734Z             },
2026-06-18T11:18:00.1853820Z             {
2026-06-18T11:18:00.1853938Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T11:18:00.1854020Z               "line": 332
2026-06-18T11:18:00.1854105Z             }
2026-06-18T11:18:00.1854181Z           ]
2026-06-18T11:18:00.1854359Z         }
2026-06-18T11:18:00.1854443Z       }
2026-06-18T11:18:00.1854529Z     },
2026-06-18T11:18:00.1854616Z     {
2026-06-18T11:18:00.1854702Z       "id": "REQ-UPD-4",
2026-06-18T11:18:00.1854892Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-18T11:18:00.1854993Z       "requiredStages": [
2026-06-18T11:18:00.1855125Z         "impl",
2026-06-18T11:18:00.1855212Z         "unit"
2026-06-18T11:18:00.1855294Z       ],
2026-06-18T11:18:00.1855383Z       "stages": {
2026-06-18T11:18:00.1855463Z         "doc": {
2026-06-18T11:18:00.1855563Z           "complete": false,
2026-06-18T11:18:00.1855644Z           "evidence": []
2026-06-18T11:18:00.1855742Z         },
2026-06-18T11:18:00.1855828Z         "impl": {
2026-06-18T11:18:00.1855928Z           "complete": true,
2026-06-18T11:18:00.1856020Z           "evidence": [
2026-06-18T11:18:00.1856104Z             {
2026-06-18T11:18:00.1856228Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T11:18:00.1856319Z               "line": 41
2026-06-18T11:18:00.1856404Z             },
2026-06-18T11:18:00.1856490Z             {
2026-06-18T11:18:00.1856615Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T11:18:00.1856710Z               "line": 88
2026-06-18T11:18:00.1856795Z             },
2026-06-18T11:18:00.1856887Z             {
2026-06-18T11:18:00.1857010Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-18T11:18:00.1857101Z               "line": 23
2026-06-18T11:18:00.1857187Z             },
2026-06-18T11:18:00.1857277Z             {
2026-06-18T11:18:00.1857401Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-18T11:18:00.1857483Z               "line": 56
2026-06-18T11:18:00.1857565Z             },
2026-06-18T11:18:00.1857644Z             {
2026-06-18T11:18:00.1857768Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-18T11:18:00.1857861Z               "line": 77
2026-06-18T11:18:00.1857949Z             },
2026-06-18T11:18:00.1858040Z             {
2026-06-18T11:18:00.1858161Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T11:18:00.1858259Z               "line": 236
2026-06-18T11:18:00.1858340Z             },
2026-06-18T11:18:00.1858430Z             {
2026-06-18T11:18:00.1858555Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T11:18:00.1858645Z               "line": 108
2026-06-18T11:18:00.1858740Z             },
2026-06-18T11:18:00.1858812Z             {
2026-06-18T11:18:00.1859021Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:18:00.1859108Z               "line": 258
2026-06-18T11:18:00.1859189Z             },
2026-06-18T11:18:00.1859284Z             {
2026-06-18T11:18:00.1859399Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1859489Z               "line": 2312
2026-06-18T11:18:00.1859575Z             }
2026-06-18T11:18:00.1859665Z           ]
2026-06-18T11:18:00.1859752Z         },
2026-06-18T11:18:00.1859847Z         "int": {
2026-06-18T11:18:00.1859961Z           "complete": false,
2026-06-18T11:18:00.1860052Z           "evidence": []
2026-06-18T11:18:00.1860133Z         },
2026-06-18T11:18:00.1860213Z         "unit": {
2026-06-18T11:18:00.1860314Z           "complete": true,
2026-06-18T11:18:00.1860406Z           "evidence": [
2026-06-18T11:18:00.1860481Z             {
2026-06-18T11:18:00.1860708Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T11:18:00.1863642Z               "line": 580
2026-06-18T11:18:00.1863760Z             },
2026-06-18T11:18:00.1863840Z             {
2026-06-18T11:18:00.1863989Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T11:18:00.1864079Z               "line": 705
2026-06-18T11:18:00.1864169Z             },
2026-06-18T11:18:00.1864251Z             {
2026-06-18T11:18:00.1864375Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-18T11:18:00.1864469Z               "line": 384
2026-06-18T11:18:00.1864547Z             },
2026-06-18T11:18:00.1864632Z             {
2026-06-18T11:18:00.1864895Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-18T11:18:00.1864980Z               "line": 102
2026-06-18T11:18:00.1865066Z             },
2026-06-18T11:18:00.1865147Z             {
2026-06-18T11:18:00.1865276Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-18T11:18:00.1865361Z               "line": 123
2026-06-18T11:18:00.1865452Z             },
2026-06-18T11:18:00.1865534Z             {
2026-06-18T11:18:00.1865661Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-18T11:18:00.1865752Z               "line": 142
2026-06-18T11:18:00.1865839Z             },
2026-06-18T11:18:00.1865925Z             {
2026-06-18T11:18:00.1866042Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T11:18:00.1866138Z               "line": 556
2026-06-18T11:18:00.1866223Z             },
2026-06-18T11:18:00.1866312Z             {
2026-06-18T11:18:00.1866425Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T11:18:00.1866517Z               "line": 566
2026-06-18T11:18:00.1866613Z             },
2026-06-18T11:18:00.1866693Z             {
2026-06-18T11:18:00.1866808Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1866898Z               "line": 8026
2026-06-18T11:18:00.1866983Z             }
2026-06-18T11:18:00.1867064Z           ]
2026-06-18T11:18:00.1867152Z         }
2026-06-18T11:18:00.1867232Z       }
2026-06-18T11:18:00.1867312Z     },
2026-06-18T11:18:00.1867404Z     {
2026-06-18T11:18:00.1867495Z       "id": "REQ-UPD-5",
2026-06-18T11:18:00.1867646Z       "title": "spt-core ripple-updates registered adapters",
2026-06-18T11:18:00.1867748Z       "requiredStages": [
2026-06-18T11:18:00.1867838Z         "impl",
2026-06-18T11:18:00.1867928Z         "unit"
2026-06-18T11:18:00.1868009Z       ],
2026-06-18T11:18:00.1868101Z       "stages": {
2026-06-18T11:18:00.1868190Z         "doc": {
2026-06-18T11:18:00.1868295Z           "complete": false,
2026-06-18T11:18:00.1868396Z           "evidence": []
2026-06-18T11:18:00.1868477Z         },
2026-06-18T11:18:00.1868562Z         "impl": {
2026-06-18T11:18:00.1868658Z           "complete": true,
2026-06-18T11:18:00.1868750Z           "evidence": [
2026-06-18T11:18:00.1868838Z             {
2026-06-18T11:18:00.1869062Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T11:18:00.1869153Z               "line": 27
2026-06-18T11:18:00.1869233Z             },
2026-06-18T11:18:00.1869314Z             {
2026-06-18T11:18:00.1869444Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T11:18:00.1869538Z               "line": 87
2026-06-18T11:18:00.1869624Z             },
2026-06-18T11:18:00.1869711Z             {
2026-06-18T11:18:00.1869834Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T11:18:00.1869925Z               "line": 145
2026-06-18T11:18:00.1870012Z             },
2026-06-18T11:18:00.1870097Z             {
2026-06-18T11:18:00.1870215Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1870317Z               "line": 492
2026-06-18T11:18:00.1870402Z             },
2026-06-18T11:18:00.1870488Z             {
2026-06-18T11:18:00.1870603Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1870698Z               "line": 546
2026-06-18T11:18:00.1870783Z             }
2026-06-18T11:18:00.1871018Z           ]
2026-06-18T11:18:00.1871112Z         },
2026-06-18T11:18:00.1871197Z         "int": {
2026-06-18T11:18:00.1871293Z           "complete": false,
2026-06-18T11:18:00.1871386Z           "evidence": []
2026-06-18T11:18:00.1871467Z         },
2026-06-18T11:18:00.1871552Z         "unit": {
2026-06-18T11:18:00.1871648Z           "complete": true,
2026-06-18T11:18:00.1871738Z           "evidence": [
2026-06-18T11:18:00.1871828Z             {
2026-06-18T11:18:00.1871968Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T11:18:00.1872053Z               "line": 272
2026-06-18T11:18:00.1872148Z             },
2026-06-18T11:18:00.1872220Z             {
2026-06-18T11:18:00.1872458Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T11:18:00.1872555Z               "line": 286
2026-06-18T11:18:00.1872635Z             },
2026-06-18T11:18:00.1872730Z             {
2026-06-18T11:18:00.1872869Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T11:18:00.1873002Z               "line": 300
2026-06-18T11:18:00.1873078Z             },
2026-06-18T11:18:00.1873164Z             {
2026-06-18T11:18:00.1873283Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T11:18:00.1873369Z               "line": 314
2026-06-18T11:18:00.1873455Z             },
2026-06-18T11:18:00.1873533Z             {
2026-06-18T11:18:00.1873660Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T11:18:00.1873741Z               "line": 348
2026-06-18T11:18:00.1873828Z             },
2026-06-18T11:18:00.1873913Z             {
2026-06-18T11:18:00.1874035Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.1874169Z               "line": 1012
2026-06-18T11:18:00.1874282Z             }
2026-06-18T11:18:00.1874371Z           ]
2026-06-18T11:18:00.1874458Z         }
2026-06-18T11:18:00.1874544Z       }
2026-06-18T11:18:00.1874634Z     },
2026-06-18T11:18:00.1874710Z     {
2026-06-18T11:18:00.1874806Z       "id": "REQ-UPD-6",
2026-06-18T11:18:00.1875612Z       "title": "Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient platform selection, channel-scoped monotonic counters, debug-channel opt-in via release-key overlay, local staging plus pull-based peer propagation, and maintainer-only convergence tooling (ADR-0016)",
2026-06-18T11:18:00.1875712Z       "requiredStages": [
2026-06-18T11:18:00.1875803Z         "doc",
2026-06-18T11:18:00.1875883Z         "impl",
2026-06-18T11:18:00.1875964Z         "unit",
2026-06-18T11:18:00.1876051Z         "int"
2026-06-18T11:18:00.1876137Z       ],
2026-06-18T11:18:00.1876231Z       "stages": {
2026-06-18T11:18:00.1876327Z         "doc": {
2026-06-18T11:18:00.1876423Z           "complete": true,
2026-06-18T11:18:00.1876508Z           "evidence": [
2026-06-18T11:18:00.1876597Z             {
2026-06-18T11:18:00.1876736Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-18T11:18:00.1876821Z               "line": 3
2026-06-18T11:18:00.1876905Z             },
2026-06-18T11:18:00.1876986Z             {
2026-06-18T11:18:00.1877101Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-18T11:18:00.1877182Z               "line": 3
2026-06-18T11:18:00.1877267Z             },
2026-06-18T11:18:00.1877354Z             {
2026-06-18T11:18:00.1877511Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-18T11:18:00.1877601Z               "line": 3
2026-06-18T11:18:00.1877683Z             }
2026-06-18T11:18:00.1877768Z           ]
2026-06-18T11:18:00.1877840Z         },
2026-06-18T11:18:00.1877930Z         "impl": {
2026-06-18T11:18:00.1878022Z           "complete": true,
2026-06-18T11:18:00.1878125Z           "evidence": [
2026-06-18T11:18:00.1878211Z             {
2026-06-18T11:18:00.1878341Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T11:18:00.1878435Z               "line": 76
2026-06-18T11:18:00.1878516Z             },
2026-06-18T11:18:00.1878598Z             {
2026-06-18T11:18:00.1878798Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T11:18:00.1878884Z               "line": 212
2026-06-18T11:18:00.1879028Z             },
2026-06-18T11:18:00.1879107Z             {
2026-06-18T11:18:00.1879233Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T11:18:00.1879314Z               "line": 69
2026-06-18T11:18:00.1879399Z             },
2026-06-18T11:18:00.1879474Z             {
2026-06-18T11:18:00.1879598Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T11:18:00.1879685Z               "line": 133
2026-06-18T11:18:00.1879774Z             },
2026-06-18T11:18:00.1879865Z             {
2026-06-18T11:18:00.1880089Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T11:18:00.1880184Z               "line": 243
2026-06-18T11:18:00.1880262Z             },
2026-06-18T11:18:00.1880352Z             {
2026-06-18T11:18:00.1880475Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T11:18:00.1880572Z               "line": 406
2026-06-18T11:18:00.1880666Z             },
2026-06-18T11:18:00.1880747Z             {
2026-06-18T11:18:00.1880872Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T11:18:00.1880962Z               "line": 534
2026-06-18T11:18:00.1881052Z             },
2026-06-18T11:18:00.1881133Z             {
2026-06-18T11:18:00.1881245Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T11:18:00.1881333Z               "line": 548
2026-06-18T11:18:00.1881415Z             },
2026-06-18T11:18:00.1881497Z             {
2026-06-18T11:18:00.1881620Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T11:18:00.1881705Z               "line": 603
2026-06-18T11:18:00.1881805Z             },
2026-06-18T11:18:00.1881881Z             {
2026-06-18T11:18:00.1882003Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T11:18:00.1882097Z               "line": 634
2026-06-18T11:18:00.1882184Z             },
2026-06-18T11:18:00.1882261Z             {
2026-06-18T11:18:00.1882393Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-18T11:18:00.1882485Z               "line": 137
2026-06-18T11:18:00.1882566Z             },
2026-06-18T11:18:00.1882642Z             {
2026-06-18T11:18:00.1882771Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-18T11:18:00.1882852Z               "line": 184
2026-06-18T11:18:00.1882933Z             },
2026-06-18T11:18:00.1883028Z             {
2026-06-18T11:18:00.1883153Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1883233Z               "line": 78
2026-06-18T11:18:00.1883323Z             },
2026-06-18T11:18:00.1883395Z             {
2026-06-18T11:18:00.1883519Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1883609Z               "line": 114
2026-06-18T11:18:00.1883700Z             },
2026-06-18T11:18:00.1883778Z             {
2026-06-18T11:18:00.1883886Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1883986Z               "line": 185
2026-06-18T11:18:00.1884073Z             },
2026-06-18T11:18:00.1884158Z             {
2026-06-18T11:18:00.1884268Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1884355Z               "line": 260
2026-06-18T11:18:00.1884436Z             },
2026-06-18T11:18:00.1884520Z             {
2026-06-18T11:18:00.1884638Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1884720Z               "line": 292
2026-06-18T11:18:00.1884809Z             },
2026-06-18T11:18:00.1884889Z             {
2026-06-18T11:18:00.1885008Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1885104Z               "line": 323
2026-06-18T11:18:00.1885185Z             },
2026-06-18T11:18:00.1885270Z             {
2026-06-18T11:18:00.1885376Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1885466Z               "line": 346
2026-06-18T11:18:00.1885552Z             },
2026-06-18T11:18:00.1885752Z             {
2026-06-18T11:18:00.1885876Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1885967Z               "line": 388
2026-06-18T11:18:00.1886048Z             },
2026-06-18T11:18:00.1886124Z             {
2026-06-18T11:18:00.1886243Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1886339Z               "line": 398
2026-06-18T11:18:00.1886424Z             },
2026-06-18T11:18:00.1886515Z             {
2026-06-18T11:18:00.1886631Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1886725Z               "line": 410
2026-06-18T11:18:00.1886810Z             },
2026-06-18T11:18:00.1886965Z             {
2026-06-18T11:18:00.1887082Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1887172Z               "line": 420
2026-06-18T11:18:00.1887262Z             },
2026-06-18T11:18:00.1887343Z             {
2026-06-18T11:18:00.1887470Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1887560Z               "line": 439
2026-06-18T11:18:00.1887642Z             },
2026-06-18T11:18:00.1887724Z             {
2026-06-18T11:18:00.1887832Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1887924Z               "line": 449
2026-06-18T11:18:00.1888005Z             },
2026-06-18T11:18:00.1888090Z             {
2026-06-18T11:18:00.1888209Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1888305Z               "line": 94
2026-06-18T11:18:00.1888391Z             },
2026-06-18T11:18:00.1888476Z             {
2026-06-18T11:18:00.1888601Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1888705Z               "line": 120
2026-06-18T11:18:00.1888786Z             },
2026-06-18T11:18:00.1888868Z             {
2026-06-18T11:18:00.1889058Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1889153Z               "line": 135
2026-06-18T11:18:00.1889235Z             },
2026-06-18T11:18:00.1889325Z             {
2026-06-18T11:18:00.1889444Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1889536Z               "line": 162
2026-06-18T11:18:00.1889625Z             },
2026-06-18T11:18:00.1889702Z             {
2026-06-18T11:18:00.1889822Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1889912Z               "line": 174
2026-06-18T11:18:00.1890001Z             },
2026-06-18T11:18:00.1890087Z             {
2026-06-18T11:18:00.1890207Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1890288Z               "line": 185
2026-06-18T11:18:00.1890368Z             },
2026-06-18T11:18:00.1890464Z             {
2026-06-18T11:18:00.1890573Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1890668Z               "line": 451
2026-06-18T11:18:00.1890754Z             },
2026-06-18T11:18:00.1890836Z             {
2026-06-18T11:18:00.1890955Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1891050Z               "line": 573
2026-06-18T11:18:00.1891132Z             },
2026-06-18T11:18:00.1891207Z             {
2026-06-18T11:18:00.1891326Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T11:18:00.1891408Z               "line": 171
2026-06-18T11:18:00.1891494Z             },
2026-06-18T11:18:00.1891574Z             {
2026-06-18T11:18:00.1891694Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-18T11:18:00.1891785Z               "line": 65
2026-06-18T11:18:00.1891870Z             },
2026-06-18T11:18:00.1891955Z             {
2026-06-18T11:18:00.1892067Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-18T11:18:00.1892171Z               "line": 71
2026-06-18T11:18:00.1892255Z             },
2026-06-18T11:18:00.1892340Z             {
2026-06-18T11:18:00.1892451Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-18T11:18:00.1892534Z               "line": 77
2026-06-18T11:18:00.1892634Z             },
2026-06-18T11:18:00.1892817Z             {
2026-06-18T11:18:00.1892935Z               "path": "crates/xtask/src/main.rs",
2026-06-18T11:18:00.1893021Z               "line": 778
2026-06-18T11:18:00.1893102Z             },
2026-06-18T11:18:00.1893192Z             {
2026-06-18T11:18:00.1893292Z               "path": "crates/xtask/src/main.rs",
2026-06-18T11:18:00.1893389Z               "line": 795
2026-06-18T11:18:00.1893469Z             },
2026-06-18T11:18:00.1893549Z             {
2026-06-18T11:18:00.1893660Z               "path": "crates/xtask/src/main.rs",
2026-06-18T11:18:00.1893746Z               "line": 838
2026-06-18T11:18:00.1893827Z             },
2026-06-18T11:18:00.1894013Z             {
2026-06-18T11:18:00.1894117Z               "path": "crates/xtask/src/main.rs",
2026-06-18T11:18:00.1894208Z               "line": 981
2026-06-18T11:18:00.1894290Z             },
2026-06-18T11:18:00.1894376Z             {
2026-06-18T11:18:00.1894480Z               "path": "crates/xtask/src/main.rs",
2026-06-18T11:18:00.1894585Z               "line": 1131
2026-06-18T11:18:00.1894672Z             }
2026-06-18T11:18:00.1894756Z           ]
2026-06-18T11:18:00.1894837Z         },
2026-06-18T11:18:00.1894929Z         "int": {
2026-06-18T11:18:00.1895019Z           "complete": true,
2026-06-18T11:18:00.1895109Z           "evidence": [
2026-06-18T11:18:00.1895193Z             {
2026-06-18T11:18:00.1895313Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-18T11:18:00.1895406Z               "line": 569
2026-06-18T11:18:00.1895492Z             },
2026-06-18T11:18:00.1895582Z             {
2026-06-18T11:18:00.1895707Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-18T11:18:00.1895807Z               "line": 135
2026-06-18T11:18:00.1895892Z             }
2026-06-18T11:18:00.1895969Z           ]
2026-06-18T11:18:00.1896050Z         },
2026-06-18T11:18:00.1896131Z         "unit": {
2026-06-18T11:18:00.1896232Z           "complete": true,
2026-06-18T11:18:00.1896327Z           "evidence": [
2026-06-18T11:18:00.1896417Z             {
2026-06-18T11:18:00.1896546Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T11:18:00.1896637Z               "line": 625
2026-06-18T11:18:00.1896732Z             },
2026-06-18T11:18:00.1896813Z             {
2026-06-18T11:18:00.1896937Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T11:18:00.1897032Z               "line": 674
2026-06-18T11:18:00.1897113Z             },
2026-06-18T11:18:00.1897196Z             {
2026-06-18T11:18:00.1897309Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T11:18:00.1897404Z               "line": 696
2026-06-18T11:18:00.1897486Z             },
2026-06-18T11:18:00.1897572Z             {
2026-06-18T11:18:00.1897694Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1897775Z               "line": 513
2026-06-18T11:18:00.1897861Z             },
2026-06-18T11:18:00.1897945Z             {
2026-06-18T11:18:00.1898063Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1898169Z               "line": 638
2026-06-18T11:18:00.1898245Z             },
2026-06-18T11:18:00.1898331Z             {
2026-06-18T11:18:00.1898445Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1898532Z               "line": 675
2026-06-18T11:18:00.1898613Z             },
2026-06-18T11:18:00.1898702Z             {
2026-06-18T11:18:00.1898822Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1898903Z               "line": 947
2026-06-18T11:18:00.1899065Z             },
2026-06-18T11:18:00.1899146Z             {
2026-06-18T11:18:00.1899265Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1899370Z               "line": 969
2026-06-18T11:18:00.1899452Z             },
2026-06-18T11:18:00.1899537Z             {
2026-06-18T11:18:00.1899642Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1899738Z               "line": 986
2026-06-18T11:18:00.1899918Z             },
2026-06-18T11:18:00.1900009Z             {
2026-06-18T11:18:00.1900129Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1900228Z               "line": 1001
2026-06-18T11:18:00.1900309Z             },
2026-06-18T11:18:00.1900387Z             {
2026-06-18T11:18:00.1900510Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1900594Z               "line": 1027
2026-06-18T11:18:00.1900685Z             },
2026-06-18T11:18:00.1900767Z             {
2026-06-18T11:18:00.1900895Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T11:18:00.1900990Z               "line": 457
2026-06-18T11:18:00.1901158Z             },
2026-06-18T11:18:00.1901242Z             {
2026-06-18T11:18:00.1901372Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-18T11:18:00.1901467Z               "line": 338
2026-06-18T11:18:00.1901548Z             },
2026-06-18T11:18:00.1901639Z             {
2026-06-18T11:18:00.1901749Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1901844Z               "line": 10302
2026-06-18T11:18:00.1901934Z             },
2026-06-18T11:18:00.1902021Z             {
2026-06-18T11:18:00.1902129Z               "path": "crates/xtask/src/main.rs",
2026-06-18T11:18:00.1902225Z               "line": 1260
2026-06-18T11:18:00.1902307Z             },
2026-06-18T11:18:00.1902398Z             {
2026-06-18T11:18:00.1902516Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-18T11:18:00.1902612Z               "line": 130
2026-06-18T11:18:00.1902694Z             }
2026-06-18T11:18:00.1902778Z           ]
2026-06-18T11:18:00.1902863Z         }
2026-06-18T11:18:00.1902944Z       }
2026-06-18T11:18:00.1903030Z     },
2026-06-18T11:18:00.1903113Z     {
2026-06-18T11:18:00.1903218Z       "id": "REQ-UPD-7",
2026-06-18T11:18:00.1905344Z       "title": "Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.",
2026-06-18T11:18:00.1905460Z       "requiredStages": [
2026-06-18T11:18:00.1905561Z         "impl",
2026-06-18T11:18:00.1905645Z         "unit"
2026-06-18T11:18:00.1905744Z       ],
2026-06-18T11:18:00.1905830Z       "stages": {
2026-06-18T11:18:00.1905916Z         "doc": {
2026-06-18T11:18:00.1906019Z           "complete": false,
2026-06-18T11:18:00.1906104Z           "evidence": []
2026-06-18T11:18:00.1906200Z         },
2026-06-18T11:18:00.1906281Z         "impl": {
2026-06-18T11:18:00.1906381Z           "complete": true,
2026-06-18T11:18:00.1906472Z           "evidence": [
2026-06-18T11:18:00.1906563Z             {
2026-06-18T11:18:00.1906667Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1906758Z               "line": 2497
2026-06-18T11:18:00.1906844Z             }
2026-06-18T11:18:00.1906930Z           ]
2026-06-18T11:18:00.1907020Z         },
2026-06-18T11:18:00.1907106Z         "int": {
2026-06-18T11:18:00.1907206Z           "complete": false,
2026-06-18T11:18:00.1907301Z           "evidence": []
2026-06-18T11:18:00.1907387Z         },
2026-06-18T11:18:00.1907479Z         "unit": {
2026-06-18T11:18:00.1907573Z           "complete": true,
2026-06-18T11:18:00.1907678Z           "evidence": [
2026-06-18T11:18:00.1907760Z             {
2026-06-18T11:18:00.1907873Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1907979Z               "line": 10278
2026-06-18T11:18:00.1908061Z             }
2026-06-18T11:18:00.1908146Z           ]
2026-06-18T11:18:00.1908231Z         }
2026-06-18T11:18:00.1908421Z       }
2026-06-18T11:18:00.1908501Z     },
2026-06-18T11:18:00.1908590Z     {
2026-06-18T11:18:00.1908685Z       "id": "REQ-UPD-8",
2026-06-18T11:18:00.1911187Z       "title": "Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.",
2026-06-18T11:18:00.1911413Z       "requiredStages": [
2026-06-18T11:18:00.1911497Z         "impl",
2026-06-18T11:18:00.1911589Z         "unit"
2026-06-18T11:18:00.1911671Z       ],
2026-06-18T11:18:00.1911751Z       "stages": {
2026-06-18T11:18:00.1911841Z         "doc": {
2026-06-18T11:18:00.1911937Z           "complete": false,
2026-06-18T11:18:00.1912023Z           "evidence": []
2026-06-18T11:18:00.1912117Z         },
2026-06-18T11:18:00.1912203Z         "impl": {
2026-06-18T11:18:00.1912295Z           "complete": true,
2026-06-18T11:18:00.1912385Z           "evidence": [
2026-06-18T11:18:00.1912465Z             {
2026-06-18T11:18:00.1912600Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T11:18:00.1912690Z               "line": 77
2026-06-18T11:18:00.1912780Z             },
2026-06-18T11:18:00.1912858Z             {
2026-06-18T11:18:00.1912981Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1913062Z               "line": 49
2026-06-18T11:18:00.1913157Z             },
2026-06-18T11:18:00.1913244Z             {
2026-06-18T11:18:00.1913361Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1913456Z               "line": 152
2026-06-18T11:18:00.1913537Z             },
2026-06-18T11:18:00.1913627Z             {
2026-06-18T11:18:00.1913740Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1913831Z               "line": 215
2026-06-18T11:18:00.1913922Z             },
2026-06-18T11:18:00.1914003Z             {
2026-06-18T11:18:00.1914126Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1914218Z               "line": 230
2026-06-18T11:18:00.1914303Z             },
2026-06-18T11:18:00.1914379Z             {
2026-06-18T11:18:00.1914499Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1914594Z               "line": 247
2026-06-18T11:18:00.1914679Z             },
2026-06-18T11:18:00.1914766Z             {
2026-06-18T11:18:00.1914894Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1914975Z               "line": 269
2026-06-18T11:18:00.1915061Z             },
2026-06-18T11:18:00.1915153Z             {
2026-06-18T11:18:00.1915276Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1915366Z               "line": 66
2026-06-18T11:18:00.1915448Z             },
2026-06-18T11:18:00.1915533Z             {
2026-06-18T11:18:00.1915657Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1915749Z               "line": 154
2026-06-18T11:18:00.1915834Z             },
2026-06-18T11:18:00.1915924Z             {
2026-06-18T11:18:00.1916035Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1916136Z               "line": 2301
2026-06-18T11:18:00.1916219Z             },
2026-06-18T11:18:00.1916314Z             {
2026-06-18T11:18:00.1916414Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1916499Z               "line": 2364
2026-06-18T11:18:00.1916684Z             },
2026-06-18T11:18:00.1916765Z             {
2026-06-18T11:18:00.1916874Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1916965Z               "line": 2374
2026-06-18T11:18:00.1917047Z             },
2026-06-18T11:18:00.1917127Z             {
2026-06-18T11:18:00.1917232Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1917328Z               "line": 2381
2026-06-18T11:18:00.1917409Z             },
2026-06-18T11:18:00.1917490Z             {
2026-06-18T11:18:00.1917594Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1917691Z               "line": 2498
2026-06-18T11:18:00.1917856Z             },
2026-06-18T11:18:00.1917942Z             {
2026-06-18T11:18:00.1918053Z               "path": "crates/xtask/src/main.rs",
2026-06-18T11:18:00.1918133Z               "line": 480
2026-06-18T11:18:00.1918214Z             },
2026-06-18T11:18:00.1918296Z             {
2026-06-18T11:18:00.1918405Z               "path": "crates/xtask/src/main.rs",
2026-06-18T11:18:00.1918505Z               "line": 494
2026-06-18T11:18:00.1918587Z             }
2026-06-18T11:18:00.1918683Z           ]
2026-06-18T11:18:00.1918758Z         },
2026-06-18T11:18:00.1918852Z         "int": {
2026-06-18T11:18:00.1919023Z           "complete": false,
2026-06-18T11:18:00.1919112Z           "evidence": []
2026-06-18T11:18:00.1919202Z         },
2026-06-18T11:18:00.1919294Z         "unit": {
2026-06-18T11:18:00.1919394Z           "complete": true,
2026-06-18T11:18:00.1919474Z           "evidence": [
2026-06-18T11:18:00.1919565Z             {
2026-06-18T11:18:00.1919685Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T11:18:00.1919789Z               "line": 476
2026-06-18T11:18:00.1919880Z             },
2026-06-18T11:18:00.1919966Z             {
2026-06-18T11:18:00.1920094Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T11:18:00.1920175Z               "line": 580
2026-06-18T11:18:00.1920258Z             },
2026-06-18T11:18:00.1920352Z             {
2026-06-18T11:18:00.1920466Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1920563Z               "line": 10280
2026-06-18T11:18:00.1920638Z             },
2026-06-18T11:18:00.1920724Z             {
2026-06-18T11:18:00.1920834Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1920925Z               "line": 10302
2026-06-18T11:18:00.1921010Z             }
2026-06-18T11:18:00.1921096Z           ]
2026-06-18T11:18:00.1921188Z         }
2026-06-18T11:18:00.1921268Z       }
2026-06-18T11:18:00.1921358Z     },
2026-06-18T11:18:00.1921439Z     {
2026-06-18T11:18:00.1921536Z       "id": "REQ-UPD-9",
2026-06-18T11:18:00.1924026Z       "title": "`gh_release` adapter [update] avenue (optional signing): an adapter declares `[update] avenue = \"gh_release\", repo = \"user/repo\"` (+ optional `asset`, default `adapter.spt`; + optional Ed25519 `signing_key`); spt-core's ripple compares the repo's LATEST GitHub release version against the installed adapter version and, when newer, auto-updates by fetching the release `.spt` archive (the REQ-INSTALL-9 `--release` fetch primitive) → verifies the `.spt` against `signing_key` if declared, else HTTPS+GitHub first-acquisition trust → re-extracts + re-registers the adapter root. Lets a harness adapter ship updates from its own GitHub releases with NO signing tooling or plugin coupling (removes the perri file_pull/delegated avenue blockers). Acquisition-trust mirrors `--release` + the installer first-fetch; does not alter spt-core self-update (REQ-UPD-1..8).",
2026-06-18T11:18:00.1924141Z       "requiredStages": [
2026-06-18T11:18:00.1924234Z         "doc",
2026-06-18T11:18:00.1924334Z         "impl",
2026-06-18T11:18:00.1924415Z         "unit"
2026-06-18T11:18:00.1924502Z       ],
2026-06-18T11:18:00.1924586Z       "stages": {
2026-06-18T11:18:00.1924672Z         "doc": {
2026-06-18T11:18:00.1924769Z           "complete": true,
2026-06-18T11:18:00.1924863Z           "evidence": [
2026-06-18T11:18:00.1924948Z             {
2026-06-18T11:18:00.1925159Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.1925258Z               "line": 93
2026-06-18T11:18:00.1925331Z             },
2026-06-18T11:18:00.1925426Z             {
2026-06-18T11:18:00.1925531Z               "path": "docs/MANIFEST.md",
2026-06-18T11:18:00.1925626Z               "line": 240
2026-06-18T11:18:00.1925722Z             }
2026-06-18T11:18:00.1925802Z           ]
2026-06-18T11:18:00.1925893Z         },
2026-06-18T11:18:00.1925980Z         "impl": {
2026-06-18T11:18:00.1926080Z           "complete": true,
2026-06-18T11:18:00.1926170Z           "evidence": [
2026-06-18T11:18:00.1926261Z             {
2026-06-18T11:18:00.1926527Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T11:18:00.1926614Z               "line": 128
2026-06-18T11:18:00.1926700Z             },
2026-06-18T11:18:00.1926784Z             {
2026-06-18T11:18:00.1926927Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1927013Z               "line": 533
2026-06-18T11:18:00.1927106Z             },
2026-06-18T11:18:00.1927201Z             {
2026-06-18T11:18:00.1927321Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.1927416Z               "line": 415
2026-06-18T11:18:00.1927501Z             },
2026-06-18T11:18:00.1927583Z             {
2026-06-18T11:18:00.1927707Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.1927806Z               "line": 461
2026-06-18T11:18:00.1927903Z             },
2026-06-18T11:18:00.1927984Z             {
2026-06-18T11:18:00.1928106Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.1928202Z               "line": 869
2026-06-18T11:18:00.1928280Z             },
2026-06-18T11:18:00.1928364Z             {
2026-06-18T11:18:00.1928488Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T11:18:00.1928590Z               "line": 302
2026-06-18T11:18:00.1928669Z             },
2026-06-18T11:18:00.1928760Z             {
2026-06-18T11:18:00.1928876Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1929046Z               "line": 5514
2026-06-18T11:18:00.1929128Z             },
2026-06-18T11:18:00.1929210Z             {
2026-06-18T11:18:00.1929313Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1929398Z               "line": 5559
2026-06-18T11:18:00.1929484Z             },
2026-06-18T11:18:00.1929560Z             {
2026-06-18T11:18:00.1929667Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1929758Z               "line": 5696
2026-06-18T11:18:00.1929834Z             },
2026-06-18T11:18:00.1929921Z             {
2026-06-18T11:18:00.1930030Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1930116Z               "line": 5717
2026-06-18T11:18:00.1930202Z             },
2026-06-18T11:18:00.1930283Z             {
2026-06-18T11:18:00.1930392Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1930479Z               "line": 5740
2026-06-18T11:18:00.1930574Z             },
2026-06-18T11:18:00.1930654Z             {
2026-06-18T11:18:00.1930755Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1930837Z               "line": 5767
2026-06-18T11:18:00.1930917Z             }
2026-06-18T11:18:00.1931002Z           ]
2026-06-18T11:18:00.1931084Z         },
2026-06-18T11:18:00.1931175Z         "int": {
2026-06-18T11:18:00.1931256Z           "complete": false,
2026-06-18T11:18:00.1931351Z           "evidence": []
2026-06-18T11:18:00.1931428Z         },
2026-06-18T11:18:00.1931518Z         "unit": {
2026-06-18T11:18:00.1931608Z           "complete": true,
2026-06-18T11:18:00.1931709Z           "evidence": [
2026-06-18T11:18:00.1931809Z             {
2026-06-18T11:18:00.1931937Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T11:18:00.1932024Z               "line": 259
2026-06-18T11:18:00.1932106Z             },
2026-06-18T11:18:00.1932194Z             {
2026-06-18T11:18:00.1932317Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T11:18:00.1932514Z               "line": 657
2026-06-18T11:18:00.1932604Z             },
2026-06-18T11:18:00.1932689Z             {
2026-06-18T11:18:00.1932814Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T11:18:00.1932899Z               "line": 1048
2026-06-18T11:18:00.1932980Z             },
2026-06-18T11:18:00.1933072Z             {
2026-06-18T11:18:00.1933172Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1933271Z               "line": 7404
2026-06-18T11:18:00.1933348Z             }
2026-06-18T11:18:00.1933434Z           ]
2026-06-18T11:18:00.1933520Z         }
2026-06-18T11:18:00.1933706Z       }
2026-06-18T11:18:00.1933791Z     },
2026-06-18T11:18:00.1933867Z     {
2026-06-18T11:18:00.1933973Z       "id": "REQ-WHOAMI-1",
2026-06-18T11:18:00.1935586Z       "title": "`spt whoami` is a thin ALIAS for `spt endpoint list` (full output: the SELF pin + the subnet roster) — the standalone bare-id command is dropped (the `id=$(spt whoami)` capture was never a real pattern: env vars don't persist between agent tool calls). The one new render: the `endpoint list` SELF pin carries the Self endpoint's authored `endpoint description` (info::read_info(...).resources) when present, inline after the liveness state. whoami stays a top-level hot-path verb (parse unchanged, REQ-MSG-9).",
2026-06-18T11:18:00.1935709Z       "requiredStages": [
2026-06-18T11:18:00.1935809Z         "doc",
2026-06-18T11:18:00.1935891Z         "impl",
2026-06-18T11:18:00.1935982Z         "unit"
2026-06-18T11:18:00.1936067Z       ],
2026-06-18T11:18:00.1938830Z       "stages": {
2026-06-18T11:18:00.1939039Z         "doc": {
2026-06-18T11:18:00.1939155Z           "complete": true,
2026-06-18T11:18:00.1939253Z           "evidence": [
2026-06-18T11:18:00.1939334Z             {
2026-06-18T11:18:00.1939436Z               "path": "CONTEXT.md",
2026-06-18T11:18:00.1939531Z               "line": 689
2026-06-18T11:18:00.1939611Z             }
2026-06-18T11:18:00.1939707Z           ]
2026-06-18T11:18:00.1939799Z         },
2026-06-18T11:18:00.1939892Z         "impl": {
2026-06-18T11:18:00.1939982Z           "complete": true,
2026-06-18T11:18:00.1940077Z           "evidence": [
2026-06-18T11:18:00.1940158Z             {
2026-06-18T11:18:00.1940280Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1940376Z               "line": 3048
2026-06-18T11:18:00.1940471Z             },
2026-06-18T11:18:00.1940566Z             {
2026-06-18T11:18:00.1940666Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1940767Z               "line": 3076
2026-06-18T11:18:00.1940848Z             }
2026-06-18T11:18:00.1940938Z           ]
2026-06-18T11:18:00.1941034Z         },
2026-06-18T11:18:00.1941119Z         "int": {
2026-06-18T11:18:00.1941219Z           "complete": false,
2026-06-18T11:18:00.1941300Z           "evidence": []
2026-06-18T11:18:00.1941397Z         },
2026-06-18T11:18:00.1941486Z         "unit": {
2026-06-18T11:18:00.1941587Z           "complete": true,
2026-06-18T11:18:00.1941688Z           "evidence": [
2026-06-18T11:18:00.1941768Z             {
2026-06-18T11:18:00.1941877Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1941959Z               "line": 7686
2026-06-18T11:18:00.1942050Z             },
2026-06-18T11:18:00.1942125Z             {
2026-06-18T11:18:00.1942231Z               "path": "crates/spt/src/cli.rs",
2026-06-18T11:18:00.1942322Z               "line": 7739
2026-06-18T11:18:00.1942402Z             }
2026-06-18T11:18:00.1942483Z           ]
2026-06-18T11:18:00.1942564Z         }
2026-06-18T11:18:00.1942656Z       }
2026-06-18T11:18:00.1942740Z     }
2026-06-18T11:18:00.1942826Z   ],
2026-06-18T11:18:00.1942926Z   "findings": []
2026-06-18T11:18:00.1943012Z }
